fopen 引數具體解釋

2021-09-08 17:23:31 字數 1387 閱讀 5462

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 須...