clearerr() - C庫函式


C庫函式 void clearerr(FILE *stream) 清除結束檔案和錯誤指標給定的流。

宣告

以下是宣告的clearerr()函式。

void clearerr(FILE *stream)

引數

  • stream -- 這是一個檔案物件的標識流的指標。

返回值

這應該不會失敗,並沒有設定外部變數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("Error in reading from file : file.txt
");
   }
   clearerr(fp);
   if( ferror(fp) )
   {
      printf("Error in reading from file : file.txt
");
   }
   fclose(fp);

   return(0);
}

假設我們有一個文字檔案file.txt,這是一個空檔案。讓我們編譯和執行上面的程式,這將產生以下結果,因為我們嘗試讀取一個檔案,我們只寫模式開啟。

Error reading from file "file.txt"