1

我想使用 FIFOS 通信 2 个进程。一个进程用 C 编写,另一个进程用 PHP 编写。问题是,如果我使用 FIFOS,写入器会阻塞,直到读取器打开 FIFO,并且在另一个方向上也是如此。我解释得更好,我有一个接收 xml 请求的 PHP 进程。PHP 获取 xml 并将其发送到 FIFO1(与 C 进程连接)。C 进程读取 FIFO1 需要 xml 做一些事情并将响应发送到 FIFO2(与 PHP 连接)。我想以非阻塞方式进行。我的意思是,如果 PHP 进程无法从 FIFO2 中读取任何内容,则它不会阻塞并且它可以同时接收 xml 请求。如果有人感兴趣,我可以在这里发布我的代码。

谢谢 ;)。

4

1 回答 1

0

您可以在 PHP 中将流设置为非阻塞。

$resource = fopen('...', 'r');
stream_set_blocking($resource, 0);
于 2013-11-24T12:00:31.183 回答