(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则
1.命名管道FIFO
- pipe匿名管道:没有名字,当创建一个管道的时候,内核就为他创建了一个64K的内存缓冲区,并且返回2个fd
mknod也可以创建
man 3 mkfifo
不能用vi打开FIFO管道文件
2.匿名管道与命名管道的区别
man 7 pipe I/O 打开Pipes and FIFOs也有区别
3.命名管道的打开规则
阻塞模式读打开::
若fd是阻塞模式,以读的方式打开,将会阻塞,直到有相应的进程因为写而打开该文件
阻塞模式写打开情况:
非阻塞读打开:
非阻塞模式立刻返回成功
非阻塞模式写打开:
4.命名管道实例
- 可以在不相关的进程间进行数据交互
实现拷贝功能:将Makefile的内容写入到管道tp,另外一个程序从管道tp读取数据,写入到Makefile2文件中
运行写端,创建tp文件
运行读端