我有一个看起来像这样的命名管道文件:
prw-r--r-- 1 root root 0 Aug 11 17:01 /tmp/debug
当我在PHP中执行类似的操作时:
$fp = fopen("/tmp/debug", "r");
它挂起(即永不返回)。有没有办法让这个呼叫返回和/或超时?
(编辑)
请注意,我希望一个进程使用写权限打开此管道,另一个进程打开具有读取权限的管道。有人正在写这个管道,而其他人正从这个管道读取。问题是读者有时会挂在fopen()上 - 无论是否成功,我都想要返回。
答案 0 :(得分:0)
http://php.net/manual/en/function.stream-set-timeout.php
注意:
注意:为了便于携带,强烈建议您始终使用''使用fopen()打开文件时标记。
也许这会有所帮助。
另外,请阅读此帖How to use named pipes in PHP between different functions or even different processes without fork?