命名管道fifo的创建和原理图
管道的优劣:
优点:简单,相比信号,套接字实现进程通信,简单很多
缺点:1.只能单向通信,双向通信需建立两个管道
2.只能用于有血缘关系的进程间通信。该问题后来使用fifo命名管道解决。
fifo管道:可以用于无血缘关系的进程间通信。
命名管道: mkfifo
无血缘关系进程间通信:
读端,open fifo O_RDONLY
写端,open fifo O_WRONLY
这是用代码创建一个,也可以用mkfifo创建
fifo实现非血缘关系进程间通信
左边写端,右边读端,可以多个写端一个读端,也可以一个写端多个读端,但是只有一个能读到,然后回收
这是多个写端一个读端
文件用于进程间通信
本质是打开的文件是内核中的一个缓冲区,多个无血缘关系的进程,都可以同时访问该文件,但是需要控制时间,
有血缘关系的,使用同一个文件描述符,没有血缘关系的进程,同一个文件使用的文件描述符可能不同。