1

FILE *cgiOut に書き込むプログラムがあり、ストリームに書き込んだ直後に、フォークしてバックグラウンド プロセスを実行する必要があります。問題は、フォークの後、 FILE * ストリームが時々フラッシュアウトするように見え、出力が重複することです (フォークの後、開いているすべてのファイルが閉じられ、バッファがフラッシュされると思います)。どうすればこれを回避できますか? ライブラリで開かれているので、マスタープロセスでファイルを閉じたくありません。それはソケットまたはパイプだと思います。

4

2 に答える 2

5

あなたの質問を理解しているかどうかはよくわかりませんが、直前のストリームで使用できるようにcgiOutなる前にバッファーが空であることを確認したい場合は、 . これにより、バッファが強制的にフラッシュされます。fork()fflush()fork()

setvbuf()とフレンズを介してバッファリング設定を変更することにより、バッファリングされていないストリームを使用するのが適切かもしれません。この方法では、バッファリングの問題は発生しません (読んでください: すべきではありません)。

于 2008-12-05T06:43:46.647 に答える
0

fflush(file)

于 2008-12-05T06:44:26.710 に答える