关闭时删除命名管道

时间:2011-06-14 01:50:38

标签: c++ unix ipc named-pipes

我正在使用命名管道在Linux上的PHP脚本和C ++守护程序之间进行通信。守护进程坐下并监视管道,在调用脚本时处理命令并生成它们。该系统是一个小型嵌入式设备,它运行的唯一内容是Web服务器和守护程序。

我应该在程序关闭时删除命名管道,还是可以将它留在文件系统上?嵌入式设备经常会出现硬关机,所以即使我在它退出时正确关闭它,它也会在大多数情况下被遗忘。当我在系统重新启动时打开它时,我是否会在管道中结束未知数据?如果是这样,我是否应该将其删除并在每次重启时重新制作,或者是否过度杀伤?

2 个答案:

答案 0 :(得分:5)

删除FIFO是干净整洁的,但这并不重要。特别是,重启系统时FIFO将为空。

因此,最好将程序设计为接受FIFO的存在,并在缺少FIFO时创建它。如果他们干净地关闭,那么删除FIFO是好的。

答案 1 :(得分:0)

我多年没有使用它们了,但我大约80%肯定你可以永远留下节点。并且它们在启动时将为空,因为数据保存在内核数据结构中。