fopen(開啟檔案)
相關函式
open,
fclose
表頭檔案 #include<
stdio.h>
定義函式 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+ 讀寫開啟乙個二進位制檔案,同意讀或在檔案末追加資料。
上述的形態字串都能夠再加乙個b字元,如rb、w+b或ab+等組合,增加b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。只是在posix系統,包括linux都會忽略該字元。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask 值。
返回值
檔案順利開啟後,指向該流的檔案指標就會被返回。若果檔案開啟失敗則返回null,並把錯誤**存在errno 中。
附加說明
一般而言,開檔案後會作一些檔案讀取或寫入的動作,若開檔案失敗,接下來的讀寫動作也無法順利進行,所以在fopen()後請作錯誤推斷及處理。
【例程】
#include
#include //為了使用exit()
int main()
//getc()用於在開啟檔案裡獲取乙個字元
while((ch=getc(fp))!=eof)
putchar(ch);
fclose(fp); //關閉檔案
return 0;
}
fopen 引數具體解釋
fopen 開啟檔案 相關函式 open,fclose 表頭檔案 include stdio.h 定義函式 file fopen const char path,const char mode 函式說明 引數path字串包括欲開啟的檔案路徑及檔名稱,引數mode字串則代表著流形態。mode有下列幾種...
fopen 引數具體解釋
fopen 開啟檔案 相關函式 open,fclose 表頭檔案 include stdio.h 定義函式 file fopen const char path,const char mode 函式說明 引數path字串包括欲開啟的檔案路徑及檔名稱,引數mode字串則代表著流形態。mode有下列幾種...
具體解釋可變引數列表
可變引數 至少有乙個引數 比如 void add int a,例題 模擬printf 函式 include include void myprintf const char format,case s default putchar c break va end ap int main void 須...