上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页
  2017年4月19日
摘要: 消息队列的属性保存在系统维护的数据结构msqid_ds中,用户可以通过函数msgctl获取或设置消息队列的属性。 int msgctl(int msqid, int cmd, struct msqid_ds *buf); msgctl:系统调用对msgqid标识的消息队列执行cmd操作,系统定义了3 阅读全文
posted @ 2017-04-19 11:32 邶风 阅读(4208) 评论(0) 推荐(0) 编辑
  2017年4月18日
摘要: 消息队列是一个存放在内核中的消息链表,每个消息队列由消息队列标识符标识。与管道不同的是消息队列存放在内核中, 只有在内核重启(即操作系统重启)或者显式地删除一个消息队列时,该消息队列才会被真正删除。 几个重要的数据结构: 在文件/usr/include/linux/msg.h中 1、消息缓冲结构: 阅读全文
posted @ 2017-04-18 17:39 邶风 阅读(2779) 评论(0) 推荐(0) 编辑
  2017年4月17日
摘要: 创建两个有名管道来实现不同进程间的全双工通信。 两个进程聊天程序:一个server端,一个client端。 例子用到了read函数: read函数只是一个通用的读文件设备的接口。是否阻塞需要由设备的属性和设定所决定。一般来说,读字符终端、网络的socket描述字,管道文件等,这些文件的缺省read都 阅读全文
posted @ 2017-04-17 16:36 邶风 阅读(4141) 评论(0) 推荐(0) 编辑
  2017年4月14日
摘要: int mkfifo(const char *pathname, mode_t mode); int mknod(const char *pathname, mode_t mode, dev_t dev); 管道的一个不足之处是没有名字,因此,只能用于具有亲缘关系的进程间通信。 在有名管道(name 阅读全文
posted @ 2017-04-14 17:16 邶风 阅读(10268) 评论(0) 推荐(0) 编辑
摘要: 管道的一种常见用法:在父进程创建子进程后向子进程传递参数。例如,一个应用软件有一个主进程和很多个不同子进程。 主进程创建子进程后,在子进程调用exec函数执行一个新程序前,通过管道给即将执行的程序传递命令行参数,子进程根据传来 的参数进行初始化或其他操作。 大致思路: The child can t 阅读全文
posted @ 2017-04-14 15:53 邶风 阅读(1474) 评论(0) 推荐(0) 编辑
摘要: 前面的例子中,子进程可以直接共享父进程的文件描述符。但是如果子进程调用exec函数执行另一个应用程序时,就不能再共享了。 这种情况下可以将子进程中的文件描述符重定向到标准输入,当新执行的程序从标准输入获取数据时实际上是从父进程中获取输入数据。 dup和dup2函数提供了复制文件描述符的功能。 int 阅读全文
posted @ 2017-04-14 11:09 邶风 阅读(2086) 评论(0) 推荐(0) 编辑
  2017年4月13日
摘要: 管道是半双工的(一端只能读不能写,一端只能写不能读),但是可以通过创建两个管道来实现一个全双工(两端都可以读写)通信。 示例代码: 阅读全文
posted @ 2017-04-13 17:56 邶风 阅读(1453) 评论(0) 推荐(0) 编辑
摘要: 1、管道的创建 #include <unistd.h> int pipe(int pipefd[2]); linux下创建管道可以通过函数pipe来完成。该函数如果调用成功,数组中将包含两个新的文件描述符。 管道两端可分别用描述符fd[0] 以及fd[1]来描述。需要注意的是,管道两端的任务是固定的 阅读全文
posted @ 2017-04-13 17:15 邶风 阅读(17786) 评论(0) 推荐(0) 编辑
摘要: 管道是两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称之为半双工管道。 1、数据只能从一个进程流向另一个进程(其中一个写管道,另一个读管道);如果要进行全双工通信,需要建立两个管道。 2、管道只能用于父子进程或者兄弟进程间的通信,也就是说管道只能用于具有亲缘关系的进程间的通信,无亲缘 阅读全文
posted @ 2017-04-13 14:45 邶风 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 主要有: 管道,有名管道,消息队列,信号量,共享内存,信号,套接字。 进程的地址空间是各自独立的,因此进程之间交互数据必须采用专门的通信机制。特别是在大型的应用系统中,往往需要多个进程相互 协作共同完成一个任务,这就需要使用进程间通信(internet process connection,IPC) 阅读全文
posted @ 2017-04-13 14:01 邶风 阅读(211) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 26 下一页