檔案讀寫方式 馬鴻凱 新浪部落格

2021-10-10 12:08:25 字數 993 閱讀 3898

在fopen最後乙個有個類似許可權的東西: 

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

mode(開啟方式)有下列幾種形態字串:

r 以唯讀

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

r+ 以可讀寫方式開啟檔案

,該檔案必須存在。

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

,允許讀資料。

rw+ 讀寫開啟乙個文字檔案

,允許讀和寫。

w 開啟只寫檔案

,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案

,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式

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

a+ 以附加方式開啟可讀寫的檔案

。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建乙個二進位制檔案

;只允許寫資料。

wb+ 讀寫開啟或建立乙個二進位制檔案

,允許讀和寫。

ab+ 讀寫開啟乙個二進位制檔案

,允許讀或在檔案末追加資料。

上述的形態字串都可以再加乙個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫以二進位制模式開啟檔案。如果不加b,表示預設加了t,即rt,wt,其中t表示以文字模式

開啟檔案。由fopen()所建立的新檔案會具有s_irusr|s_iwusr|s_irgrp|s_iwgrp|s_iroth|s_iwoth(0666)許可權,此檔案許可權也會參考umask 值。

有些c編譯系統

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

linux命令 ulimit 馬鴻凱 新浪部落格

在占用記憶體空間較大的區域性陣列宣告的前面加static將其從堆疊資料段挪到全域性資料段即可。堆疊大小預設1mb 可以在鏈結選項中改大 區域性變數是放在棧空間中的,而函式傳遞的引數也在棧空間中,struct original bp newh row col 這個陣列太大,把棧空間其它的資料給覆蓋了。...

stcmp的實現 馬鴻凱 新浪部落格

include stdio.h include assert.h intstrcmpstr const char res const char des if ret 0 else if ret 0 return ret intmain 附錄 在c中,預設的基礎資料型別均為signed,現在我們以ch...

黏包以及處理 馬鴻凱 新浪部落格

產生物件 tcp中的接受方 黏包原因 收方在讀取緩衝區時,緩衝區存在多個資料報。在tcp協議中接收方是一次讀取緩衝區中的所有內容 解決方式 自定協議 自定協議,將資料報分為了封包和解包兩個過程。在傳送方傳送資料時,對傳送的資料進行封包操作。在接收方接收到資料時對接收的資料報需要進行解包操作。自定協議...