PHP stream_set_timeout 和 popen 不能一起工作?
我使用 popen 打开到另外 2 个 php 脚本的流:
$proc[0] = popen("/usr/srv/php /my/folder/myscript.php 0 &", "r");
$proc[1] = popen("/usr/srv/php /my/folder/myscript.php 1 &", "r");
if (!stream_set_timeout($proc[0], 1, 0)) print "stream_set_timeout failed on stream 1";
if (!stream_set_timeout($proc[1], 1, 0)) print "stream_set_timeout failed on stream 2";
发生的情况是,stream_set_timeout 在两个流上都失败(返回 false,在使用 php 5.3 的 Linux 和 Windows 机器上进行测试。)。在两个流上使用 fread 效果很好,但我想“同时”从两个流读取,并且 fread 不断阻止从另一个流读取(顺便说一句,stream_set_blocking 也返回失败,返回 false)。
知道为什么这不起作用吗?
I use popen to open a stream to 2 other php-scripts:
$proc[0] = popen("/usr/srv/php /my/folder/myscript.php 0 &", "r");
$proc[1] = popen("/usr/srv/php /my/folder/myscript.php 1 &", "r");
if (!stream_set_timeout($proc[0], 1, 0)) print "stream_set_timeout failed on stream 1";
if (!stream_set_timeout($proc[1], 1, 0)) print "stream_set_timeout failed on stream 2";
What happens is that stream_set_timeout fails on both streams (returning false, tested on a linux- and a windows-machine with php 5.3.). Using fread on both stream works fine, but I want to read from both streams "simultaneously" and fread keeps blocking reading from the other stream (by the way, stream_set_blocking returns fails, too, returning false).
Any idea why this isn't working?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论