當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 標(biāo)準(zhǔn)IO函數(shù)
【1】int fflush(FILE *stream);
功能:強制刷新一個流
返回:成功 0, 失敗 EOF
注意:fflush(stdin)Gcc不支持
【2】stdin stdout stderr
刷新條件:滿、fflush、進(jìn)程結(jié)束、‘\n’
【3】FILE *fopen(cost char *path, const char *mode);
功能:打開一個文件,獲得文件的流
參數(shù):<path> 路徑,字符串首地址
<mode> 模式,字符串首地址
返回:成功返回文件流指針,失敗返回NULL
r 只讀 r+ 可讀可寫(從頭覆蓋) //不創(chuàng)建
w 只寫(清空) w+ 可讀可寫(清空) //文件不存在則創(chuàng)建
a 只寫(追加) a+ 可讀可寫(追加) //文件不存在則創(chuàng)建
【4】 int fputc(int c, FILE *stream);
【5】 int fclose(FILE *fp);
功能:關(guān)閉一個流。
參數(shù):<stream>文件流指針
【6】int fgetc(FILE *stream);
功能:從流中讀取一個字符。
注意:讀完一個字符是要接著讀第二個字符的
【7】int fprintf(FILE *stream, const char *format, ...);
功能:將打印的內(nèi)容生成字符串寫入一個流中。
參數(shù):<stream>文件流指針;后面與printf一樣
返回:輸出數(shù)據(jù)的字節(jié)數(shù)
【8】int fputs(const char *s, FILE *stream);
功能:向一個流中寫入s所指向的字符串。
返回:輸出數(shù)據(jù)的字節(jié)數(shù)
【*】char *fgets(char *s, int size, FILE *stream);
功能:從一個流中讀取size大小的字符,寫入s所指向的字符串。
參數(shù):<s> 字符串首地址;
<size> 讀取的字節(jié)大小
返回:字符串的首地址
注意:多讀取size-1 個字符,遇到'\n'結(jié)束
【10】size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:將ptr所指向的數(shù)據(jù)單元寫入文件中
參數(shù): <ptr> 數(shù)據(jù)來源
<size> 每單元數(shù)據(jù)的字節(jié)大小
<nmemb> 單元數(shù)據(jù)的次數(shù)
<stream>文件流指針
返回:成功獲取的單元次數(shù):1 ~ nmemb。
不足一單元數(shù)據(jù),或失敗:0
【11】size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
功能:從文件中讀取數(shù)據(jù)單元
參數(shù): <ptr> 數(shù)據(jù)保存的位置
<size> 讀取單元數(shù)據(jù)的大小
<nmemb> 讀取單元數(shù)據(jù)的個數(shù)
返回:成功獲取的單元次數(shù):1 ~ nmemb。
不足一單元數(shù)據(jù),或失敗:0
【12】int fseek(FILE *stream, long offset, int whence);
功能:定位流的讀寫位置
參數(shù):<offset> 偏移量
<whence> SEEK_SET 文件開始(在第一個字符)
SEEK_CUR 當(dāng)前
SEEK_END 文件末尾 (后一個字符的下一個)
返回:成功返回當(dāng)前位置 失敗-1
注意:"a+" 時使用fseek無效
【13】void rewind(FILE *stream);
<==>
fseek(fp,0, SEEK_SET);
【14】long ftell(FILE *stream);
功能:獲取流當(dāng)前的讀寫位置
返回:成功 當(dāng)前的讀寫位置
失敗 -1
注意:起始位置為0;
【15】int feof(FILE *stream);
功能:判斷一個文件是否到文件結(jié)尾
返回:結(jié)束非0, 沒有結(jié)束0
【16】void clearerr(FILE *stream);
功能:清除文件結(jié)束標(biāo)識,清除錯誤信息