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

OS依存です。データがバッファリングされるか、他のプログラムの出力呼び出しがブロックされるか、またはそれらの組み合わせが発生する可能性があります。

于 2012-08-02T23:31:12.143 に答える