stdio
C 標準自体は、関数に対して errno WRT をあまり使用する必要はありません。それはそれを指定しますferror()
が、それについてのみ言います
7.13.10.3 ferror 関数ferror 関数は、stream が指すストリームのエラー インジケータをテストします。ferror 関数は、ストリームにエラー インジケータが設定されている場合に限り、0 以外を返します。
C99 ドラフトから: http://www.vmunix.com/~gabor/c/draft.html。使用される実際のエラー コードは、ほとんどの場合、実装によって定義されます。
ただし、Linux の GNU C ライブラリも POSIX 仕様に準拠しています。
http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm
このコンテキストでは、どちらがより明確に定義されています。たとえば、次のページを見るとfopen
:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/fopen.html
Errorsの下に、特定の errno コードを含む多くの詳細情報が表示されます。
繰り返しになりますが、事実上すべての通常の Linux システムで使用される GNU C ライブラリは POSIX に準拠しているため、その情報を信頼できます ;)。これらの (オンラインの) POSIX man ページは、通常、標準の Linux システムの man ページよりも詳細です (両方を読んでください)。
他の (非 POSIX) プラットフォームでのファイル操作への WRT には、独自の実装があります。残念ながら、そのようなものは標準 C では透過的に移植できません。ただし、C++ ストリームには、より標準化されたエラー処理があります。