在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協議中接收方是一次讀取緩衝區中的所有內容 解決方式 自定協議 自定協議,將資料報分為了封包和解包兩個過程。在傳送方傳送資料時,對傳送的資料進行封包操作。在接收方接收到資料時對接收的資料報需要進行解包操作。自定協議...