この関数の目的
ferror()は、ストリームのエラー指示子を調べる。
定義
#include <stdio.h> int ferror(FILE *stream);
働き
この関数は stream で指されるストリームのエラー指定子を検査し、セットされていた場合にのみゼロでない数を返す。
解説
近年のパーソナルコンピュータは、ファイル入出力時に EOF 以外のエラーを発生させることはめったにない。だからといってチェックを怠っていいかというと、ほとんどの場合怠っても問題ない。 ただ、ソースを他の処理系でも使いたいと思ったら、もう少し神経質になったほうが安全である。
feof() に示してあるサンプルをもう少し神経質にしたものを以下に示す。
{ FILE *fp; int c; if(fp = fopen(name, "rb")){ for(; (c = getc(fp)) != EOF || (!feof(fp) && !ferror(fp));){ /* ... */ } } }