檔案 標準庫函式

2021-09-05 03:42:52 字數 2186 閱讀 1216

一.i/o緩衝

c標準庫提供了操作檔案的標準i/o函式庫,與系統呼叫相比,主要差別是實現了乙個跨平台的使用者態緩衝的解決方案。

1. i/o緩衝的解釋(以printf()為例)

printf函式向標準輸出寫入多個字元,所寫入的字元被放在乙個使用者態的緩衝區中,直到碰到乙個換行符,系統才呼叫write函式將緩衝區中的資料寫入標準輸出,也就是說,在換行符之前寫入的字元並不會立即出現在控制台螢幕上。

系統呼叫要請求核心的服務,會引發cpu模式的切換,期間會有大量的堆疊資料儲存操作,開銷比較大。如果頻繁的進行系統呼叫,會降低應用程式的執行效率。

有了緩衝機制以後,多個讀寫操作可以合併為一次系統呼叫,減少了系統呼叫的次數,將大大提高程式的執行效率。

標準i/o函式並不直接操作檔案描述符,而是使用檔案指標。檔案指標指向的資料型別是file型。

二.fopen

1.作用

用於開啟乙個標準 i/o 流

2.使用

file *fopen(const char *path, const char *mode);
第乙個引數:檔名

第二個引數:開啟方式

r"或"rb":以唯讀方式開啟。

「w"或"wb」:以只寫方式開啟,並把檔案長度截短為零。

「a"或"ab」:以寫方式開啟,新內容追加在檔案尾。

"r+"或"rb+「或"r+b」:以更新方式開啟(讀和寫)。

"w+"或"wb+「或"w+b」:以更新方式開啟,並把檔案長度截短為零。

"a+"或"ab+「或"a+b」:以更新方式開啟,新內容追加在檔案尾

注意:字母 b 表示檔案是乙個二進位制檔案而不是乙個文字檔案。

3.返回值

成功返回:乙個非空的file* 指標,失敗返回null

三.fread

1.作用

用於從乙個檔案流裡讀取資料

2.使用

size_t fread(void *ptr, size_t size, size_t nmemb, file *stream);
第乙個引數:資料緩衝區

第二個引數:每個資料記錄的長度

第三個引數:要傳輸的記錄個數

第四個引數:檔案指標

3.返回值

成功讀到資料緩衝區裡的記錄個數

四.fwrite

1.作用

從指定的資料緩衝區裡取出資料記錄,並把它們寫到輸出流中。

2.使用

size_t fwrite(const void *ptr, size_t size, size_t nmemb, file *stream);
3.返回值

成功寫入的記錄個數

五. fclose

1.作用

函式用於關閉指定的檔案流。

2.使用

int fclose(file *fp);
六.fflush

1.作用

用於把檔案流裡所有未寫出的資料立即寫出

2.使用

int fflush(file *stream);
七.fseek

1.作用

用於在檔案流裡為下一次讀寫操作指定位置。

2.使用

int fseek(file *stream, long offset, int whence);
3.返回值

返回乙個整數:0表示成功,-1表示失敗

C 標準庫函式

有許多不同的案件中,陣列排序的可能是有用的。演算法 如搜尋看看一些存在於乙個陣列 通常可以變得更簡單和 或更有效時,輸入的資料進行排序。此外,排序是非常有用的可讀性,如當列印列表按字母順序排列的名字。排序通常是通過反覆比較的陣列元素對進行的,和交換他們如果他們滿足一些標準。為了在這些元素進行比較根據...

C 標準庫函式

c 程式通常可以呼叫標準c 庫中的大量函式。這些函式完成一些基本的服務,如輸入和輸出等,同時也為一些經常使用的操作提供了高效的 實現 這些函式中含有大量的函式和類定義,以幫助程式設計師更好地使用標準c 庫。標準c 庫包含以下內容 和 標準c 庫的詳細訊息均在其對應的標頭檔案進行了說明。主要標準c 庫...

strcpy c標準庫函式

c語言標準庫函式strcpy,把從src位址開始且含有null結束符的字串複製到以dest開始的位址空間。已知strcpy函式的原型是 char strcpy char dst,const char src 實現strcpy函式 解釋為什麼要返回char 假如考慮dst和src記憶體重疊的情況,st...