檔案開啟模式 w r a 區別和辨析

2021-08-08 17:01:20 字數 660 閱讀 3566

w+開啟檔案並讀寫  1. 檔案存在,則

清空(也即寫入空); 2. 檔案不存在,則

建立檔案 ; 3. 檔案流定位到

開始位置, 所以read() 會得到空。

r+開啟檔案並讀寫   1. 檔案存在,開啟檔案,檔案指標定位到檔案開始位置; 2. 檔案不存在, 則

報錯檔案不存在。

a+開啟檔案並讀添   1. 檔案存在,開啟檔案,檔案指標定位到檔案開始位置,但不清空;2.  檔案不存在,

建立檔案;

3. 開啟後

讀取時,在檔案

開頭位置,4.

寫入時,新增到文章

末尾,並且

指標位於新增後的末尾,所以再次讀取會亂碼。

另外,1. w 開啟檔案寫入,也會清空檔案,如果使用read(),則報錯;a 開啟檔案新增,資料流新增到檔案末尾,而不是w模式的清空後新增。

2. b可以附加到上述的字母後,形成rb, rb+, wb等等模式,針對二進位制檔案,比如exe, elf, jpeg格式的檔案,進行檔案操作; 在unix 型別的系統上,text格式與二進位制的處理相同,但是非unix型別的系統上,換行格式不同,所以需要用加b模式來在指定是否是二進位制。

reference:

linux檔案開啟模式

檔案開啟 int open const char pathname int flags mode t mode 普通方式 canonical mode flags中沒有設定o sync and o direct。這種方式中read是阻塞呼叫 blocking call 等到磁碟資料讀取完畢後返回 w...

linux檔案開啟模式

檔案開啟 int open const char pathname int flags mode t mode 普通方式 canonical mode flags中沒有設定o sync and o direct。這樣的方式中read是堵塞呼叫 blocking call 等到磁碟資料讀取完成後返回 ...

檔案的開啟模式

1.ofstream 寫資料 ifstream 讀資料 fstream ofstream ifstream 建立fstream物件時,應指定檔案開啟模式 mode 模式 description 描述 ios in 開啟檔案讀資料 ios out 開啟檔案寫資料 ios ate 開啟檔案,把檔案游標移...