Linux C---檔案操作(fopen、fwrite、fread等)的許可權問題
C語言中對檔案進行操作必須開啟檔案,開啟檔案主要涉及到fopen函式。
fopen函式的原型為:
FILE* fopen(const char *path,const char *mode)
其中path為檔案路徑,mode為開啟方式
1)對於檔案路徑,只需注意若未明確給出絕對路徑,則預設該檔案在工程的目錄下。若需給出絕對路徑,則注意轉義字元'\',比如有檔案test.txt存放在C盤根目錄下,則檔案路徑引數值應為C:\\test.txt。
2)對於mode,主要由r,w,a,+,b,t六個字元組合而成。
r:只讀方式,檔案必須存在
w:只寫方式,若檔案存在,則原有內容會被清除;若檔案不存在,則會建立檔案
a:追加方式開啟只寫檔案,只允許進行寫操作,若檔案存在,則新增的內容放在檔案末尾;若不存在,則建立檔案
+:可讀可寫
b:以二進位制方式開啟檔案
t:以文字方式開啟檔案(預設方式下以文字方式開啟檔案)
下面是常見的組合:
r: 以只讀的方式開啟檔案,只允許讀,此檔案必須存在,否則返回NULL,開啟成功後返回檔案指標,位置指標指向檔案頭部
r+: 以可讀可寫的方式開啟檔案,允許讀寫,此檔案必須存在,否則返回NULL,開啟成功後返回檔案指標,位置指標指向檔案頭部
rb+: 以可讀可寫、二進位制方式開啟檔案,允許讀寫,此檔案必須存在,否則返回NULL,開啟成功後返回檔案指標,位置指標指向檔案頭部
rt+: 以可讀可寫、文字方式開啟檔案,允許讀寫,此檔案必須存在,否則返回NULL,開啟成功後返回檔案指標,位置指標指向檔案頭部
w: 以只寫的方式開啟檔案,只允許寫,若檔案存在,檔案中原有內容會被清除;若檔案不存在,則建立檔案,開啟成功後返回檔案指標,位置指標指向檔案頭部
w+: 以讀寫的方式開啟檔案,允許讀寫,若檔案存在,檔案中原有內容會被清除;若檔案不存在,則建立檔案,開啟成功後返回檔案指標,位置指標指向檔案頭部
a: 以追加、只寫的方式開啟檔案,只允許寫。若檔案存在,則追加的內容新增在檔案末尾,若檔案不存在,則建立檔案。開啟成功後返回檔案指標,位置指標指向檔案頭部(注意很多書上或資料上講述追加方式開啟成功後位置指標指向檔案末尾是錯誤的)
a+: 以追加、可讀寫的方式開啟檔案,允許讀寫。若進行讀操作,則從頭開始讀;若進行寫操作,則將內容新增在末尾。若檔案不存在,則建立檔案。開啟成功後返回檔案指標,位置指標指向檔案頭部。