EPOLL

2015-6-27 chenhui 网络

有了 EPOLL 这么好用的东西,POLL 和 SELECT 也就没有必要使用了。 int nfds; int curfds; int kdpfd; int tcp_server_sock = -1; struct epoll_event events[MAXEPOLLSIZE]; struct epoll_event ev; /* * 设置一个 sock 为非阻塞,防止因为读...

阅读全文>>

评论(0) 浏览(192)

消息队列

2015-6-26 chenhui 进程间通信

消息队列和命名管道很像,但他没有管道那么复杂,使用起来相对方便。 调用 int msgget(key_t key, int magflg) 来创建或得到一个消息队列,其功能和共享内存一致。 调用 int msgsnd(int msqid,const void *msg_ptr, size_t msg_sz, int msgflg) 把一个消息...

阅读全文>>

评论(0) 浏览(149)

共享内存

2015-6-25 chenhui 进程间通信

共享内存允许不相关的进程访问同一片内存。 共享内存的原理很简单,就是两个进程的进程地址空间的虚存区映射到同一片物理内存,就实现了共享内存。 Linux 为共享内存提供了四个系统调用: int shmget(key_t key, size_t size, int shmflg) int shmctl(int shmid, int cmd, str...

阅读全文>>

评论(0) 浏览(149)

管道

2015-6-25 chenhui 进程间通信

关于管道的底层实现原理,可阅读: 管道,顾名思义,就是用来传输通信数据的管道。一个进程把数据写入管道,另一个进程把他读出来,这就是他的功能了。 本文将介绍三种管道,一是 C 库封装的管道;二是系统本身提供的;三是命名管道。 我们可以调用 C 库中的 popen() 来创建一个管道,pclose() 来关闭一个管道,其原型如下: ...

阅读全文>>

评论(0) 浏览(155)

Copyright ©2015-2016 freehui All rights reserved