C ライブラリ関数 -clearerr()
説明
C ライブラリ関数void clearerr(FILE *stream)指定されたストリーム stream のファイル終端およびエラー識別子をクリアします。
宣言
以下は clearerr() 関数の宣言です。
void clearerr(FILE *stream)
引数
- stream-- これは、ストリームを識別する FILE オブジェクトへのポインタです。
戻り値
これは失敗せず、外部変数 errno も設定しません。ただし、引数が有効なストリームでないことを検出した場合は、-1 を返し、errno に EBADF を設定します。
例
以下の例は、clearerr() 関数の使い方を示しています。
例
#include <stdio.h>
int main()
{
FILE *fp;
char c;
fp = fopen("file.txt", "w");
c = fgetc(fp);
if( ferror(fp) )
{
printf("ファイル file.txt の読み取り中にエラーが発生しました\n");
}
clearerr(fp);
if( ferror(fp) )
{
printf("ファイル file.txt の読み取り中にエラーが発生しました\n");
}
fclose(fp);
return(0);
}
int main()
{
FILE *fp;
char c;
fp = fopen("file.txt", "w");
c = fgetc(fp);
if( ferror(fp) )
{
printf("ファイル file.txt の読み取り中にエラーが発生しました\n");
}
clearerr(fp);
if( ferror(fp) )
{
printf("ファイル file.txt の読み取り中にエラーが発生しました\n");
}
fclose(fp);
return(0);
}
テキストファイルがあると仮定します。file.txtそれは空のファイルです。書き込み専用モードで開かれたファイルを読み取ろうとしているため、上記のプログラムをコンパイルして実行すると、次の結果が得られます。
读取文件:file.txt 时发生错误その他の拡張
C 標準ライブラリ - <stdio.h>