标签: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