fopen与读写的标识r,r+,rb+,rt+,w+.....
函數(shù)簡(jiǎn)介
函數(shù)功能:?打開一個(gè)文件
函數(shù)原型:FILE * fopen(const char * path,const char * mode);
相關(guān)函數(shù):open,fclose,fopen_s[1] ,_wfopen
所需庫(kù):?<stdio.h>
返回值:?文件順利打開后,指向該流的文件指針就會(huì)被返回。若果文件打開失敗則返回NULL,并把錯(cuò)誤代碼存在errno 中。
一般而言,打開文件后會(huì)作一些文件讀取或?qū)懭氲膭?dòng)作,若打開文件失敗,接下來的讀寫動(dòng)作也無法順利進(jìn)行,所以在fopen()后請(qǐng)作錯(cuò)誤判斷及處理。
參數(shù)說明:
參數(shù)path字符串包含欲打開的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r 打開只讀文件,該文件必須存在。
r+ 打開可讀寫的文件,該文件必須存在。
rb+ 讀寫打開一個(gè)二進(jìn)制文件,只允許讀寫數(shù)據(jù)。
rt+ 讀寫打開一個(gè)文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長(zhǎng)度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。(EOF符保留)
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。 (原來的EOF符不保留)
wb 只寫打開或新建一個(gè)二進(jìn)制文件;只允許寫數(shù)據(jù)。
wb+ 讀寫打開或建立一個(gè)二進(jìn)制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個(gè)文本文件;允許讀寫。
at+ 讀寫打開一個(gè)文本文件,允許讀或在文本末追加數(shù)據(jù)。
ab+ 讀寫打開一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
上述的形態(tài)字符串都可以再加一個(gè)b字符,如rb、w+b或ab+等組合,加入b 字符用來告訴函數(shù)庫(kù)打開的文件為二進(jìn)制文件,而非純文字文件。不過在POSIX系統(tǒng),包含Linux都會(huì)忽略該字符。由fopen()所建立的新文件會(huì)具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)權(quán)限,此文件權(quán)限也會(huì)參考umask 值。
有些C編譯系統(tǒng)可能不完全提供所有這些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,讀者注意所用系統(tǒng)的規(guī)定。
總結(jié)
以上是生活随笔為你收集整理的fopen与读写的标识r,r+,rb+,rt+,w+.....的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7个Python实战项目(附源码),拿走
- 下一篇: Presto基本概念