日期:2014-05-16  浏览次数:20623 次

关于FIFO——命名管道的问题
看Unix环境高级编程的进程间通讯那章,对FIFO有些疑问:

书上说:
对于FIFO而言,虽然当最后一个引用FIFO的进程终止时其名字仍保留在系统中,直至显式地删除它,但是留在FIFO中的数据却在此时全部被删除,于是也就徒有其名了。

问题:
1.如果通讯完成后没有删除的话,那我下次再用同样的名字创建并使用会出现什么问题
2.如何显示的查询当前所有的命名管道,以便删除残余的
3.为何要这样设计,为啥不像匿名管道那样,直接干掉完事儿
4.如果通信双方的其中一方调了unlink,另一方再读/写会出问题吗
5.必须双方都调用unlink吗?

------解决方案--------------------
1、创建失败
2、find . -type p
3、或许是出于生命周期的考虑。你之后或许还想再打开
4、不知道,可以试试。感觉没问题
5、一个unlink就行了