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);
}