参考文献 https://www.cnblogs.com/zgq0/p/8780893.html
1. 管道
特点:
- 半双工,具有固定的读端和写端
- 只能在具有亲缘关系的进程之间通信(父子、兄弟)
- 可以当作是一种特殊的文件,可以read,write,但是不属于任何文件系统,只存在于内存中
原型:
#include<unistd>
int pip(int fd[2]);//返回值,成功则返回0,失败则返回-1
当一个管道建立时,它会创建两个文件描述符:fd[0]负责读,f[1]负责写。要关闭管道,只需要把两个文件描述符关闭掉就可以了。
2. FIFO
3. 消息队列
4. 信号量
5. 共享内存
6. eventfd
- eventfd的定义:
eventfd是linux的一个系统调用,可以实现事件的通知。eventfd包含一个由内核维护的64位无符号整数数据,创建event时会返回一个文件描述符,对这个描述符进行read/wirte可以读取/该变计数器的值,从而实现进程通信。 - 创建:
- 读:
- 写: