2013-11-09 70 views

回答

6

這裏是男人頁(man fopen)說:

一個

公開賽追加(在文件尾寫)。如果文件 不存在,則創建該文件。流位於文件的末尾。

一個+

打開用於讀取和追加(在文件末尾寫入)。如果該文件不存在,則創建文件 。讀取的初始文件位置在文件開始處爲 ,但輸出始終附加到文件末尾 。


這意味着:

爲+: 指針最初是在該文件(讀出)的開始,但是當寫操作被嘗試它被移動到的所述端文件。

+2

不要輕易相信 - 不是所有的手冊頁都是一樣的。我說:「寫作開放。如果該文件不存在,則會創建該文件。流位於文件的末尾。隨後對文件的寫入將始終結束於當前文件的結尾,而不管任何介入fseek(3)或類似的.'和'a + Open用於讀取和寫入。如果該文件不存在,則會創建該文件。流位於文件的末尾。後續對文件的寫入操作將始終結束於文件的當前結束位置,而不管任何干預fseek(3)或類似操作。' –

+0

快速測試顯示首次讀取非空文件(在任何寫入之前)返回EOF。所以在這種情況下它從結尾讀取。這是在Mac OS X上。 –

1

是的,有一個重要的區別:

一個:追加數據文件,它可以更新文件寫入末的一些數據;

一個+:在文件中附加數據,並更新它,這意味着它可以在結束寫,並且還爲能夠讀取該文件。

在只寫日誌都是適合一之實踐的情況,但如果你還需要的文件中讀一些(使用附加模式已經打開的文件),你需要使用「A +」。

相關問題