关闭时删除命名管道 < >我使用一个命名管道在Linux上的PHP脚本和C++守护进程之间进行通信。守护进程监视管道,在调用脚本并生成命令时处理命令。该系统是一个小型嵌入式设备,它只运行web服务器和守护进程

关闭时删除命名管道 < >我使用一个命名管道在Linux上的PHP脚本和C++守护进程之间进行通信。守护进程监视管道,在调用脚本并生成命令时处理命令。该系统是一个小型嵌入式设备,它只运行web服务器和守护进程,c++,unix,ipc,named-pipes,C++,Unix,Ipc,Named Pipes,我应该在程序关闭时删除命名管道,还是可以将其保留在文件系统上?嵌入式设备经常会被硬关闭,所以即使我在它很好地退出时正确地关闭它,它仍然会在大部分时间被保留。当我在系统重新启动时打开管道时,管道中是否会有未知数据?如果是这样的话,我是否应该删除它并在每次重新启动时重新创建它,还是这样做太过分了?删除FIFO是整洁的,但这样做并不重要。特别是,当系统重新启动时,FIFO将为空 因此,最好设计程序来接受FIFO的存在,并在缺少FIFO时创建FIFO。如果它们被完全关闭,那么移除FIFO是很好的。我已经

我应该在程序关闭时删除命名管道,还是可以将其保留在文件系统上?嵌入式设备经常会被硬关闭,所以即使我在它很好地退出时正确地关闭它,它仍然会在大部分时间被保留。当我在系统重新启动时打开管道时,管道中是否会有未知数据?如果是这样的话,我是否应该删除它并在每次重新启动时重新创建它,还是这样做太过分了?

删除FIFO是整洁的,但这样做并不重要。特别是,当系统重新启动时,FIFO将为空


因此,最好设计程序来接受FIFO的存在,并在缺少FIFO时创建FIFO。如果它们被完全关闭,那么移除FIFO是很好的。

我已经多年没有使用它们了,但我大约80%确信可以让节点永远保持原位。它们在启动时将为空,因为数据保存在内核数据结构中。

谢谢。我正在检查何时启动,如果管道不存在,则制作管道。我将在析构函数中抛出unlink(),以清理程序是否恰好顺利退出并将其称为good。