clearerr ()- 重設錯誤指示器
格式
#include <stdio.h>
void clearerr (FILE *stream);語言層次
ANSI
安全執行緒
是
說明
clearerr() 函數會重設指定 串流的錯誤指示器及檔案結尾指示器。 一旦設定,指定串流的指示器會維持設定,直到您的程式呼叫 clearerr() 函數或 rewind() 函數為止。 fseek() 函數也會清除檔案結尾指示器。 ILE C/C++ 執行時期環境不會自動清除錯誤或檔案結尾指示器。
回覆值
此方法不會傳回任何值。
錯誤碼的值可以設為:
- Value
- 意義
- EBADF
- 檔案指標或描述子無效。
- ENOTOPEN
- 檔案未開啟。
- ESTDIN
- 無法開啟
stdin。 - EIOERROR
- 發生非可回復I/O錯誤。
- EIORECERR
- 發生可回復I/O錯誤。
範例
此範例會讀取資料串流,然後檢查是否未發生讀取錯誤。
#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);
}