1

父親が子供と通信し、子供が父親とそれぞれ 2 つのパイプを介して通信するプログラムを C で作成しました。

それは完璧に機能します。

親は、一方のパイプの読み取り側を閉じ、もう一方のパイプの書き込み側も閉じます。息子にも同じことが言えますが、各パイプで閉じるものを変更するだけです。

理論的な問題は次のとおりです。

すべての子が実行を終了し、父親が正常に終了しようとしているときに、タイプの他の 2 つの側面を閉じる必要がありますか?

本当に必要ですか?なぜ?プログラム全体の構造をよりよく理解したいだけです。

前もって感謝します!

4

1 に答える 1

1

プログラムを終了すると、開いているファイルはすべてclose自動的に削除されます。もちろん、明示的に閉じることもできます。特別なエラー処理を行いたい場合は、明示的に閉じて、 の戻り値を確認できるようにする必要がありますclose()

おそらくご存知のとおりclose()、ディスクがいっぱいで、まだflush編集されていないデータがある場合、 はエラーを返します。

于 2012-05-26T16:44:15.437 に答える