clearerr() — エラー標識のリセット
フォーマット
#include <stdio.h>
void clearerr (FILE *stream);
言語レベル
ANSI
スレッド・セーフ
はい
説明
clearerr() 関数は、指定した stream のエラー標識とファイル終了標識をリセットします。 いったん設定されると、指定したストリームの標識は、プログラムが clearerr() 関数または rewind() 関数を呼び出すまで設定されたままになります。 また、fseek() 関数はファイル終了標識もクリアします。ILE C/C++ ランタイム環境は、エラー標識やファイル終了標識を自動的にクリアしません。
戻り値
戻り値はありません。
errno の値は、次のいずれかに設定されます。
- 値
- 意味
- EBADF
- ファイル・ポインター、または記述子が有効ではありません。
- ENOTOPEN
- ファイルはオープンされていません。
- ESTDIN
- stdin をオープンできません。
- EIOERROR
- リカバリー不能な入出力エラーが発生しました。
- EIORECERR
- リカバリー可能な入出力エラーが発生しました。
例
次の例はデータ・ストリームを読み取り、次に読み取りエラーが発生していないことを確認します。
#include <stdio.h>
#include <stdlib.h>
FILE *stream;
int c;
int main(void)
{
if ((stream = fopen("mylib/myfile", "r")) != NULL)
{
if ((c=getc(stream)) == EOF)
{
if (ferror(stream))
{
perror("Read error");
clearerr(stream);
}
}
}
else
exit(0);
}