C檔案操作函式 筆記

2021-07-10 03:58:40 字數 1972 閱讀 7686

參考文章:

1  fopen 開啟檔案

file *fopen(char *filename, char *mode)

filename 檔名稱

mode 開啟模式:

r 唯讀方式開啟乙個文字檔案

rb 唯讀方式開啟乙個二進位制檔案

w 只寫方式開啟乙個文字檔案

wb 只寫方式開啟乙個二進位制檔案

a 追加方式開啟乙個文字檔案

ab 追加方式開啟乙個二進位制檔案

r+ 可讀可寫方式開啟乙個文字檔案

rb+ 可讀可寫方式開啟乙個二進位制檔案

w+ 可讀可寫方式建立乙個文字檔案

wb+ 可讀可寫方式生成乙個二進位制檔案

a+ 可讀可寫追加方式開啟乙個文字檔案

ab+ 可讀可寫方式追加乙個二進位制檔案

1、緩衝檔案系統與非緩衝系統的區別

緩衝檔案系統(fopen):在記憶體為每個檔案開闢乙個快取區,當執行讀操作,從磁碟檔案將資料讀入記憶體緩衝區,裝滿後從記憶體緩衝區依次讀取資料。寫操作同理。

記憶體緩衝區的大小影響著實際操作外存的次數,緩衝區越大,操作外存的次數越少,執行速度快,效率高。緩衝區大小由機器而定。

借助檔案結構體指針對檔案管理,可讀寫字串、格式化資料、二進位制資料。

非緩衝檔案系統(open):依賴作業系統功能對檔案讀寫,不設檔案結構體指標,只能讀寫二進位制檔案。

2、open屬於低階io,fopen屬於高階io

3、open返回檔案描述符,屬於使用者態,讀寫需進行使用者態與核心態切換。

fopen返回檔案指標

4、open是系統函式,不可移植

fopen是標準c函式,可移植

5、一般用fopen開啟普通檔案,open開啟裝置檔案

6、如果順序訪問檔案,fopen比open快

如果隨機訪問檔案,open比fopen快

2  fprintf 傳送格式化輸出到乙個檔案中

3  fscanf 從乙個流中執行格式化輸入

4  clearerr 清除檔案流的錯誤旗標

5  fclose 關閉檔案

6  fdopen 將檔案描述符轉為檔案指標

7  feof 檢查檔案流是否讀到了檔案尾

8  fflush 更新緩衝區

9  fgetc 從檔案中讀取乙個字元

10  fgets從檔案中讀取字串

11  fileno 返回檔案流對應的檔案描述符

12  fputc 將指定字元寫入檔案流中

13  fputs 將指定字串寫入檔案中

14  freopen 開啟檔案

15  fseek 移動檔案流讀寫位置

16  ftell 取得檔案流的讀取位置

17  fwrite 將資料寫至檔案流

18  getc 從檔案中讀取乙個字元,同fgetc

19  getchar 從標準輸入裝置中讀取乙個字元

20  gets 從標準輸入裝置中讀取字串

21  mktemp 產生唯一的臨時檔名

22  putc 將指定字元寫入檔案中,同fputc

23  putchar 將指定字元寫入到標準輸出裝置

24  rewind 重設檔案流讀寫位置到檔案開頭,同 fseek(stream, 0, seek_set)

C 函式 筆記

內聯函式只適用於小函式,使用內聯函式需要注意以下幾點 內聯函式中不能含有任何迴圈語句以及switch和goto語句 內聯函式的宣告必須出現在內聯函式第一次被呼叫之前 內聯函式中不能說明陣列 遞迴函式不能定義為內聯函式 函式過載 函式引數個數或型別不同,可以構成過載函式 生命期 是指乙個識別符號從被建...

C 函式筆記

函式的呼叫需要完成兩項工作 一 實參初始化物件的形參 二 將控制權交給函式,主調函式中斷,被調函式執行。函式的返回型別不能是陣列。陣列不可以做函式返值的原因在於,函式的返值是賦值傳遞的,而陣列不可以進行簡單賦值。也就是函式的返回值是簡單的臨時變數方法,所以不支援是陣列。當然,函式不能返回函式,雖然不...

C 函式筆記

在c 中,函式的形參列表中的形參是可以有預設值的。語法 返回值型別 函式名 引數 預設值 示例 int func int a,int b 10,int c 10 1.如果某個位置引數有預設值,那麼從這個位置往後,從左向右,必須都要有預設值 2.如果函式宣告有預設值,函式實現的時候就不能有預設引數 i...