close
そしてこれについてのマンページhttp://pubs.opengroup.org/onlinepubs/009695399/functions/close.html(権威あるように見えます)close
システムコールが失敗する可能性があると述べました。
IOライブラリはこの問題をどのように扱うべきですか?
ベストアンサー1
一番気になる点は
[EIO] A previously-uncommitted write(2) encountered an
input/output error.
したがって、理想的には、プログラムは特にクローズの戻り値を確認する必要がありますEIO
。ファイルシステムがいっぱいになると、一般的に書き込みは失敗しますが、理想的には、これが発生する前にそれをキャプチャするための監視やログの回転などが必要です。ファイルシステムを信頼せずに非常に重要なデータ(たとえば、わかりません)、または/etc/passwd
支払いバッチファイルを処理する場合は、記録されたデータをチェックサムしてから記録された内容を確認する必要があります。ファイルシステムの埋め込みに関連しない理由により、重大な破損が発生しました。
私の考えでは、ファイルに書き込むすべてのプログラムが戻り値を確認するわけではありませんが、ケースバイケースで確認する必要があります。 (libxml
数年前に綿密な調査で誤検があったことを覚えていますか?)
また、Cライブラリがエラー処理を実行する方法も回避します。