FIFO管道

2014-11-24 09:44:39 · 作者: · 浏览: 0

写脚本的时候用到FIFO,不是很会,就学习了下。下面是简介:



FIFO也称为有名管道,它是一种文件类型。FIFO简单理解,就是它能把两个不相关的进程联系起来,FIFO就像一个公共通道,解决了不同进程之间的“代沟”。普通的无名管道只能让相关的进程进行沟通(比如父shell和子shell之间)。还是用代码来说明问题好了。


下面我模拟了一个FIFO通信的过程,主要有两个进程。



打开终端A:


$ ./Client.sh


打开终端B:


$./Server.sh


你就能看到在终端B中从fifo中读取到的数据,你要是在终端B中把每次读fifo的间隔给改成2秒,就更能说明问题了。上面的程序,在实验的时候最好通过不断挂起A进程来查看,然后观察B进程的输出。你会知道FIFO整个是怎么跑的。。。这里就不详细解释了!(最近太累了~~~)


FIFO的出现,极好地解决了系统在应用过程中产生的大量的中间临时文件的问题。FIFO可以被shell调用使数据从一个进程到另一个进程,系统不必为该中间通道去烦恼清理不必要的垃圾,或者去释放该通道的资源,它可以被留做后来的进程使用。并且规避了匿名管道在作用域的限制,可应用于不相关的进程之间。