码迷,mamicode.com
首页 > 系统相关 > 详细

进程间通信 ---- 管道与FIFO 用法技巧

时间:2014-10-17 01:16:23      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:style   ar   sp   文件   数据   div   on   ad   bs   

1.管道的创建

1.1 mkfifo(const char *pathname,mode_t mode);
   函数已隐含指定O_CREAT|O_EXCL,所以它要么创建一个新的FIFO,要么返回EEXIST错误(已存在)。
   所以在创建已存在FIFO或新的FIFO,应该先调用mkfifo,并检查返回值 是否是EEXIST错误,若是EEXIST错误,则调      用open函数。

2.FIFO或管道读写

   2.1对管道或FIFO的write 总是往末尾添加数据,对管道或FIFO的read总是从头开始读的。如果对管道或FIFO调用lseek,就返回ESPIPE的错误
   2.2 进程间通信 注意 读写管道的顺序 防止产生死锁。

3.管道或FIFO的删除

    管道---进程关闭之后,自动消失。
    FIFO --- 调用unlink 从文件系统删除。

4.管道或FIFO的原子操作

原子write属性 往管道或FIFO的写入的数据<=PIPE_BUF(管道缓冲大小),与其他属性无关

5 进程间通信

   写进程关闭管道或FIFO的消息通过read()返回文件结束描述符传给读进程的。
   读进程关闭管道或FIFO的消息通过给写进程传递一个信号。




进程间通信 ---- 管道与FIFO 用法技巧

标签:style   ar   sp   文件   数据   div   on   ad   bs   

原文地址:http://blog.csdn.net/su8844/article/details/40159111

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!