
この関数の目的
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));){
/* ... */
}
}
}