C檔案操作fopen開啟標記設定問題【學習筆記】

來源:互聯網
上載者:User

函數原型:FILE * fopen(const char * path,const char * mode);     

傳回值:檔案順利開啟後,指向該流的檔案指標就會被返回。如果檔案開啟失敗則返回NULL,並把錯誤碼存在errno 中。   

一般而言,開啟檔案後會作一些檔案讀取或寫入的動作,若開啟檔案失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。   

參數說明:   參數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 值。   有些C編譯系統可能不完全提供所有這些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統的規定。

參考資料:http://baike.baidu.com/view/656681.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.