C語言的fopen函式(檔案操作 讀寫)

2022-03-21 04:55:25 字數 1465 閱讀 1377

標頭檔案:#include

fopen()是乙個常用的函式,用來以指定的方式開啟檔案,其原型為:

file * fopen(const char * path, const char * mode);

【引數】path為包含了路徑的檔名,mode為檔案開啟方式。

mode有以下幾種方式:

開啟方式說明r

以唯讀方式開啟檔案,該檔案必須存在。

r+以讀/寫方式開啟檔案,該檔案必須存在。

rb+以讀/寫方式開啟乙個二進位制檔案,只允許讀/寫資料。

rt+以讀/寫方式開啟乙個文字檔案,允許讀和寫。

w開啟只寫檔案,若檔案存在則長度清為0,即該檔案內容消失,若不存在則建立該檔案。

w+開啟可讀/寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留(eof符保留)。

a+以附加方式開啟可讀/寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,則寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留(原來的eof符 不保留)。

wb以只寫方式開啟或新建乙個二進位制檔案,只允許寫資料。

wb+以讀/寫方式開啟或建立乙個二進位制檔案,允許讀和寫。

wt+以讀/寫方式開啟或建立乙個文字檔案,允許讀寫。

at+以讀/寫方式開啟乙個文字檔案,允許讀或在文字末追加資料。

ab+以讀/寫方式開啟乙個二進位制檔案,允許讀或在檔案末追加資料。

在posix 系統,包含linux 下都會忽略 b 字元。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask 值。

二進位制和文字模式的區別:

更多資訊請檢視:c語言fopen()開啟文字檔案與二進位制檔案的區別

有些c編譯系統可能不完全提供所有這些功能,有的c版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統的規定。

【返回值】檔案順利開啟後,指向該流的檔案指標就會被返回。若果檔案開啟失敗則返回null,並把錯誤**存在errno 中。

注意:一般而言,開檔案後會作一些檔案讀取或寫入的動作,若開檔案失敗,接下來的讀寫動作也無法順利進行,所以在fopen()後請作錯誤判斷及處理。

檔案操作完成後,需要將檔案關閉,一定要注意,否則會造成檔案所占用記憶體洩露和在下次訪問檔案時出現問題。

檔案關閉後,需要將檔案指標指向空,這樣做會防止出現游離指標,而對整個工程造成不必要的麻煩,如fp = null。

【例項】開啟乙個檔案然後關閉該檔案。

#include

#include

#include

int main()

else

fclose(fstream);

return 0;

}

C語言的fopen函式(檔案操作 讀寫)

標頭檔案 include fopen 是乙個常用的函式,用來以指定的方式開啟檔案,其原型為 file fopen const char path,const char mode 引數 path為包含了路徑的檔名,mode為檔案開啟方式。mode有以下幾種方式 開啟方式說明r 以唯讀方式開啟檔案,該檔...

C語言檔案處理 fopen函式

一 c語言操作檔案 1.1 開啟檔案你可以使用fopen 函式來建立乙個新的檔案或者開啟乙個已有的檔案,這個呼叫會初始化型別file的乙個物件,型別file包含了所有用來控制流的必要的資訊。下面是這個函式呼叫的原型 file fopen const char filename,const char ...

c語言fopen函式

c語言函式fopen 函式簡介 1.函式功能 開啟乙個檔案 2.函式原型 file fopen const char path,const char mode 3.相關函式 open,fclose,fopen s 1 wfopen 所需庫 4.返回值 檔案順利開啟後,指向該流的檔案指標就會被返回。如...