当文件io打开的流被阻止时会发生什么?

时间:2012-08-02 23:19:46

标签: php file-io stream popen

请考虑以下代码段:

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

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

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

输出是否有可能被删除?

1 个答案:

答案 0 :(得分:1)

它依赖于操作系统。可以缓冲数据,可以阻止其他程序的输出调用,或者它们的某种组合。