1

考虑这里的代码片段:

$handle = popen("some command that generates an infinite stream of output to stdout", "r");

while ($line = fgets($handle)) {
     echo $line;
     sleep(3);
}

我的问题是:在 sleep(3) 期间实际发生了什么,传递给 popen() 的命令仍在喷出输出?这是缓冲到 PHP 的内存吗?

输出是否有可能被丢弃?

4

1 回答 1

1

它取决于操作系统。数据可能会被缓冲,其他程序的输出调用可能会阻塞,或者它们的某种组合。

于 2012-08-02T23:31:12.143 回答