來源:http://www.cplusplus.com/reference/cstdio/fopen/
定義: FILE * fopen ( const char * filename, const char * mode );
簡介:
打開在引數file name中指定其名稱的檔案,并將其與一個流相關聯,該流可以在以后的操作中由回傳的檔案指標標識,
流上允許的操作以及如何執行這些操作由mode引數定義,
如果已知回傳的流不參考互動設備,則默認情況下會對其進行完全緩沖(請參閱setbuf),
回傳的指標可以通過呼叫fclose或freopen與檔案解除關聯,所有打開的檔案在正常程式終止時自動關閉,
運行環境至少支持同時打開fopen_max檔案,
引數:
filename
包含要打開的檔案名的C字串,
其值應遵循運行環境的檔案名規范,并可以包括路徑(如果系統支持),
mode
| r |
| w |
| a |
| r+ |
| w+ |
| a+ |
| 讀取:打開檔案進行輸入操作,檔案必須存在, |
| 寫入:為輸出操作創建一個空檔案,如果已經存在同名的檔案,則丟棄其內容,并將檔案視為新的空檔案, |
| 追加:打開檔案,在檔案末尾輸出,輸出操作總是在檔案末尾寫入資料,并將其展開,重新定位操作(fseek、fsetpos、rewind)將被忽略,如果檔案不存在,則創建該檔案, |
| 讀取/更新:打開檔案進行更新(輸入和輸出),檔案必須存在, |
| 寫入/更新:創建一個空檔案并打開它進行更新(輸入和輸出),如果同名檔案已存在,則將丟棄其內容,并將該檔案視為新的空檔案, |
| 追加/更新:打開一個檔案進行更新(包括輸入和輸出),所有輸出操作在檔案末尾寫入資料,重新定位操作(fseek、fsetpos、rewind)會影響下一個輸入操作,但輸出操作會將位置移回檔案末尾,如果檔案不存在,則創建該檔案, |
使用上面的模式說明符,檔案將作為文本檔案打開,為了將檔案作為二進制檔案打開,模式字串中必須包含“B”字符,這個額外的“b”字符可以附加在字串的末尾(從而形成以下復合模式:“rb”、“wb”、“ab”、“r+b”、“w+b”、“a+b”),也可以插入字母和混合模式的“+”符號(“rb+”、“wb+”、“ab+”)之間,
新的C標準(不是C++的一部分)增加了一個新的標準“x”(“x”),可以附加到任何“W”說明符(形成“0”、“0”、“w”或“W”+“+”),如果檔案存在,此子引數將強制函式失敗,而不是重寫它,
如果序列后面有其他字符,則行為取決于庫實作:有些實作可能會忽略其他字符,以便接受額外的“t”(有時用于顯式宣告文本檔案),
在某些庫實作中,使用更新模式打開或創建文本檔案可能會將流視為二進制檔案,
文本檔案是包含文本行序列的檔案,根據應用程式運行的環境,在文本模式下的輸入/輸出操作中可能會發生一些特殊字符轉換,以使它們適應系統特定的文本檔案格式,雖然在某些環境中不存在轉換,并且文本檔案和二進制檔案都以相同的方式處理,但是使用適當的模式提高了可移植性,
對于同時允許輸入和輸出操作的打開更新的檔案(包括“+”符號的檔案),在執行寫入操作之后的讀取操作之前,應重繪(fflush)流或重新定位(fseek、fsetpos、rewind),在讀取操作之后的寫入操作之前(當該操作未到達檔案結尾時),流應重新定位(fseek、fsetpos、rewind),
回傳值:
如果檔案已成功打開,則函式回傳指向檔案物件的指標,該物件可用于在以后的操作中標識流,
否則,回傳空指標,
在大多數庫實作中,Erro變數也被設定為系統特定的錯誤代碼,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/102080.html
標籤:C++
上一篇:cf-786B區間圖最短路
下一篇:樹-二叉樹的基本概念
