在PHP和进程之间使用命名管道的任何可预见的限制


c - Any foreseeable limitations of using named pipes between PHP and process?

我想写一个php文件,它将管道命令到系统(但也处理stdin,以便交互式程序也可以使用)。我读到这不能在php中完成,所以我用C写了一个程序,设置了2个fifo (in/out)。我在以下意义上对它进行了测试:

(打开3个终端)

终端1:./程序设置管道终端2:cat fifo_out终端3:echo "ls -l"> fifo_in

这将显示在终端2。我将很快在C程序中实现stdin。

因此,我计划从php文件发送命令并通过管道返回响应(包括最终处理stdin)。是否有什么我应该知道的"陷阱"会让这变得不可行?(例如PHP不能很好地处理这些程序之间的命名管道或存在超时或权限等?)有什么建议可以避免这些陷阱吗?

Thanks in advance

据我所知,您可以使用proc_open()来运行具有双向IO的程序。该文档包含一个相当全面的示例