fopen
來(lái)源:http://www.cplusplus.com/reference/cstdio/fopen/
定義: FILE * fopen ( const char * filename, const char * mode );
簡(jiǎn)介:
打開在參數(shù)file name中指定其名稱的文件,并將其與一個(gè)流相關(guān)聯(lián),該流可以在以后的操作中由返回的文件指針標(biāo)識(shí)。
流上允許的操作以及如何執(zhí)行這些操作由mode參數(shù)定義。
如果已知返回的流不引用交互設(shè)備,則默認(rèn)情況下會(huì)對(duì)其進(jìn)行完全緩沖(請(qǐng)參閱setbuf)。
返回的指針可以通過(guò)調(diào)用fclose或freopen與文件解除關(guān)聯(lián)。所有打開的文件在正常程序終止時(shí)自動(dòng)關(guān)閉。
運(yùn)行環(huán)境至少支持同時(shí)打開fopen_max文件。
參數(shù):
filename
包含要打開的文件名的C字符串。
其值應(yīng)遵循運(yùn)行環(huán)境的文件名規(guī)范,并可以包括路徑(如果系統(tǒng)支持)。
mode
| r |
| w |
| a |
| r+ |
| w+ |
| a+ |
| 讀取:打開文件進(jìn)行輸入操作。文件必須存在。 |
| 寫入:為輸出操作創(chuàng)建一個(gè)空文件。如果已經(jīng)存在同名的文件,則丟棄其內(nèi)容,并將文件視為新的空文件。 |
| 追加:打開文件,在文件末尾輸出。輸出操作總是在文件末尾寫入數(shù)據(jù),并將其展開。重新定位操作(fseek、fsetpos、rewind)將被忽略。如果文件不存在,則創(chuàng)建該文件。 |
| 讀取/更新:打開文件進(jìn)行更新(輸入和輸出)。文件必須存在。 |
| 寫入/更新:創(chuàng)建一個(gè)空文件并打開它進(jìn)行更新(輸入和輸出)。如果同名文件已存在,則將丟棄其內(nèi)容,并將該文件視為新的空文件。 |
| 追加/更新:打開一個(gè)文件進(jìn)行更新(包括輸入和輸出),所有輸出操作在文件末尾寫入數(shù)據(jù)。重新定位操作(fseek、fsetpos、rewind)會(huì)影響下一個(gè)輸入操作,但輸出操作會(huì)將位置移回文件末尾。如果文件不存在,則創(chuàng)建該文件。 |
使用上面的模式說(shuō)明符,文件將作為文本文件打開。為了將文件作為二進(jìn)制文件打開,模式字符串中必須包含“B”字符。這個(gè)額外的“b”字符可以附加在字符串的末尾(從而形成以下復(fù)合模式:“rb”、“wb”、“ab”、“r+b”、“w+b”、“a+b”),也可以插入字母和混合模式的“+”符號(hào)(“rb+”、“wb+”、“ab+”)之間。
新的C標(biāo)準(zhǔn)(不是C++的一部分)增加了一個(gè)新的標(biāo)準(zhǔn)“x”(“x”),可以附加到任何“W”說(shuō)明符(形成“0”、“0”、“w”或“W”+“+”)。如果文件存在,此子參數(shù)將強(qiáng)制函數(shù)失敗,而不是重寫它。
如果序列后面有其他字符,則行為取決于庫(kù)實(shí)現(xiàn):有些實(shí)現(xiàn)可能會(huì)忽略其他字符,以便接受額外的“t”(有時(shí)用于顯式聲明文本文件)。
在某些庫(kù)實(shí)現(xiàn)中,使用更新模式打開或創(chuàng)建文本文件可能會(huì)將流視為二進(jìn)制文件。
文本文件是包含文本行序列的文件。根據(jù)應(yīng)用程序運(yùn)行的環(huán)境,在文本模式下的輸入/輸出操作中可能會(huì)發(fā)生一些特殊字符轉(zhuǎn)換,以使它們適應(yīng)系統(tǒng)特定的文本文件格式。雖然在某些環(huán)境中不存在轉(zhuǎn)換,并且文本文件和二進(jìn)制文件都以相同的方式處理,但是使用適當(dāng)?shù)哪J教岣吡丝梢浦残浴?/p>
對(duì)于同時(shí)允許輸入和輸出操作的打開更新的文件(包括“+”符號(hào)的文件),在執(zhí)行寫入操作之后的讀取操作之前,應(yīng)刷新(fflush)流或重新定位(fseek、fsetpos、rewind)。在讀取操作之后的寫入操作之前(當(dāng)該操作未到達(dá)文件結(jié)尾時(shí)),流應(yīng)重新定位(fseek、fsetpos、rewind)。
返回值:
如果文件已成功打開,則函數(shù)返回指向文件對(duì)象的指針,該對(duì)象可用于在以后的操作中標(biāo)識(shí)流。
否則,返回空指針。
在大多數(shù)庫(kù)實(shí)現(xiàn)中,Erro變量也被設(shè)置為系統(tǒng)特定的錯(cuò)誤代碼。
總結(jié)
- 上一篇: vue项目配置localhost和IP地
- 下一篇: 《魔鸟》:上帝可以宽恕,魔鬼却一个都不放