C 庫函數(shù) - clearerr()

C 標(biāo)準(zhǔn)庫 - <stdio.h> C 標(biāo)準(zhǔn)庫 - <stdio.h>

描述

C 庫函數(shù) void clearerr(FILE *stream) 清除給定流 stream 的文件結(jié)束和錯誤標(biāo)識符。

聲明

下面是 clearerr() 函數(shù)的聲明。

void clearerr(FILE *stream)

參數(shù)

  • stream -- 這是指向 FILE 對象的指針,該 FILE 對象標(biāo)識了流。

返回值

這不會失敗,且不會設(shè)置外部變量 errno,但是如果它檢測到它的參數(shù)不是一個有效的流,則返回 -1,并設(shè)置 errno 為 EBADF。

實例

下面的實例演示了 clearerr() 函數(shù)的用法。

#include <stdio.h>

int main()
{
   FILE *fp;
   char c;

   fp = fopen("file.txt", "w");

   c = fgetc(fp);
   if( ferror(fp) )
   {
      printf("讀取文件:file.txt 時發(fā)生錯誤\n");
   }
   clearerr(fp);
   if( ferror(fp) )
   {
      printf("讀取文件:file.txt 時發(fā)生錯誤\n");
   }
   fclose(fp);

   return(0);
}

假設(shè)我們有一個文本文件 file.txt,它是一個空文件。讓我們編譯并運行上面的程序,因為我們試圖讀取一個以只寫模式打開的文件,這將產(chǎn)生以下結(jié)果。

讀取文件:file.txt 時發(fā)生錯誤

C 標(biāo)準(zhǔn)庫 - <stdio.h> C 標(biāo)準(zhǔn)庫 - <stdio.h>