C 庫函數(shù) - clearerr()
描述
C 庫函數(shù) void clearerr(FILE *stream) 清除給定流 stream 的文件結(jié)束和錯(cuò)誤標(biāo)識(shí)符。
聲明
下面是 clearerr() 函數(shù)的聲明。
void clearerr(FILE *stream)
參數(shù)
- stream -- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了流。
返回值
這不會(huì)失敗,且不會(huì)設(shè)置外部變量 errno,但是如果它檢測(cè)到它的參數(shù)不是一個(gè)有效的流,則返回 -1,并設(shè)置 errno 為 EBADF。
實(shí)例
下面的實(shí)例演示了 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 時(shí)發(fā)生錯(cuò)誤\n"); } clearerr(fp); if( ferror(fp) ) { printf("讀取文件:file.txt 時(shí)發(fā)生錯(cuò)誤\n"); } fclose(fp); return(0); }
假設(shè)我們有一個(gè)文本文件 file.txt,它是一個(gè)空文件。讓我們編譯并運(yùn)行上面的程序,因?yàn)槲覀冊(cè)噲D讀取一個(gè)以只寫模式打開的文件,這將產(chǎn)生以下結(jié)果。
讀取文件:file.txt 時(shí)發(fā)生錯(cuò)誤
更多建議: