星期三, 13. 十二月 2017 06:34下午
本篇博客主要讲解用于进程间通信的匿名管道和命名管道
参考资料:UNIX环境高级编程
邮箱:blbagony@163.com
匿名管道
#include <unistd.h>
int pipe(int pipefd[2]);
//成功返回 0,失败返回 -1
经由 pipefd 返回的两个文件描述符,pipefd[0] 为读而打开,pipefd[1]为写而打开
管道的五个特性
- (匿名管道)适用于有血缘关系的进程(命名管道可以满足无血缘关系的两个进程通信)
- 管道提供流式服务,即面向字节流
- 半双工,即单向通信,如果想要实现全双工就创建两个管道
- 管道的生命周期随进程,即进程结束,管道文件资源随即被系统释放
- 自带同步与互斥机制(如果管道写满了就不能在写,如果管道里尝试读管道的进程就会阻塞)进程