アプリケーションが書き込み用に開いていてFIFOで、何かが「受信中」であると仮定し、アプリケーションが書き込みを試みると、アプリケーションは破損したパイプエラーを受け取ります。大丈夫ですが、知りたいです。取っ手を再利用する恐れがある場合したがって、もはや存在しないハンドルを作成する危険があります。したがって、質問は次のようになります。破損したFIFOハンドルはどれほど耐久性がありますか? FIFOのもう一方の端が閉じられていることを知る前に、アプリケーションが破損したパイプエラーにどのくらい依存している可能性がありますか?または、ハンドルを明示的に閉じない限り、アプリケーションの寿命中にハンドルが再利用されないことは保証されますか?
答え1
close
ファイルディスクリプタは、閉じるまで(または呼び出しdup2
やプロセスの終了などを介して)開く呼び出しに使用されたファイルまたはFIFOに関連付けられます。開いているファイル記述子に対応するファイルまたはFIFOが削除されても(例:この問題)同じ名前の別のファイルを作成しても、ファイル記述子が開いている限り、元のファイルに対するI / Oを続行できます。また、非アクティブによりFIFOが閉じるタイムアウトはありません。