FILE *cgiOut に書き込むプログラムがあり、ストリームに書き込んだ直後に、フォークしてバックグラウンド プロセスを実行する必要があります。問題は、フォークの後、 FILE * ストリームが時々フラッシュアウトするように見え、出力が重複することです (フォークの後、開いているすべてのファイルが閉じられ、バッファがフラッシュされると思います)。どうすればこれを回避できますか? ライブラリで開かれているので、マスタープロセスでファイルを閉じたくありません。それはソケットまたはパイプだと思います。
MattSmith
質問する
206 次
2 に答える
5
あなたの質問を理解しているかどうかはよくわかりませんが、直前のストリームで使用できるようにcgiOut
なる前にバッファーが空であることを確認したい場合は、 . これにより、バッファが強制的にフラッシュされます。fork()
fflush()
fork()
setvbuf()
とフレンズを介してバッファリング設定を変更することにより、バッファリングされていないストリームを使用するのが適切かもしれません。この方法では、バッファリングの問題は発生しません (読んでください: すべきではありません)。
于 2008-12-05T06:43:46.647 に答える
0
于 2008-12-05T06:44:26.710 に答える