(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

1.命名管道FIFO

  • pipe匿名管道:没有名字,当创建一个管道的时候,内核就为他创建了一个64K的内存缓冲区,并且返回2个fd

(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

mknod也可以创建
man 3 mkfifo
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则
不能用vi打开FIFO管道文件
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

2.匿名管道与命名管道的区别

man 7 pipe I/O 打开Pipes and FIFOs也有区别
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

3.命名管道的打开规则

(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

阻塞模式读打开::

若fd是阻塞模式,以读的方式打开,将会阻塞,直到有相应的进程因为写而打开该文件
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

阻塞模式写打开情况:
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

非阻塞读打开:
非阻塞模式立刻返回成功
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

非阻塞模式写打开:
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

4.命名管道实例

  • 可以在不相关的进程间进行数据交互
    实现拷贝功能:将Makefile的内容写入到管道tp,另外一个程序从管道tp读取数据,写入到Makefile2文件中
    (P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

运行写端,创建tp文件
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

运行读端
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则
(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则

(P25)管道:命名管道FIFO、匿名管道与命名管道的区别、命名管道的打开规则