我無法理解C fopen api文檔中「a」和「a +」選項的描述。 「a +」中的選項是追加和更新。這裏更新一詞的含義是什麼?fopen函數中的a和a +選項有什麼區別?
1
A
回答
6
這裏是男人頁(man fopen
)說:
一個
公開賽追加(在文件尾寫)。如果文件 不存在,則創建該文件。流位於文件的末尾。
一個+
打開用於讀取和追加(在文件末尾寫入)。如果該文件不存在,則創建文件 。讀取的初始文件位置在文件開始處爲 ,但輸出始終附加到文件末尾 。
這意味着:
爲+: 指針最初是在該文件(讀出)的開始,但是當寫操作被嘗試它被移動到的所述端文件。
1
是的,有一個重要的區別:
一個:追加數據文件,它可以更新文件寫入末的一些數據;
一個+:在文件中附加數據,並更新它,這意味着它可以在結束寫,並且還爲能夠讀取該文件。
在只寫日誌都是適合一之實踐的情況,但如果你還需要的文件中讀一些(使用附加模式已經打開的文件),你需要使用「A +」。
相關問題
- 1. A a有什麼區別?和A a();?
- 2. a,&a和* a有什麼區別?
- 3. 函數參數中的A和A []有什麼區別?
- 4. a ++和++ a或a--和--a在java中有什麼區別?
- 5. 'a'和'a'有什麼區別?
- 6. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 7. A == B對B == A,有什麼區別
- 8. Win32 API中的`A`和`W`函數有什麼區別?
- 9. javascript中的a + 1和a - 1 +2有什麼區別
- 10. Ruby中的object.method(a,b)和方法(a,b)有什麼區別
- 11. MatLab中的[A,B]和[A; B]有什麼區別?
- 12. php中的$ a和$$ a有什麼區別?
- 13. 正則表達式中的「a {1}」和「a」有什麼區別?
- 14. if(isset($ a))和if($ a)在php中有什麼區別?
- 15. 在JavaScript中,var a = 5有什麼區別。和var a = 5?如
- 16. lodash中cloneDeep(a)和extend({},a)有什麼區別?
- 17. flash(a,b)和flash()。put(a,b)在PlayFramework中有什麼區別?
- 18. 在git中,A..B和A ... B有什麼區別?
- 19. 「new A()」和「A.newInstance()」有什麼區別?
- 20. libboost_math_c99f.a和libboost_math_c99.a有什麼區別?
- 21. '&self'和'&'a self'有什麼區別?
- 22. 'open -a TextMate.app'和'mate'有什麼區別?
- 23. p和a有什麼區別?
- 24. .so和.a文件有什麼區別?
- 25. .lib和.a文件有什麼區別?
- 26. a = a + b和a + = b之間的區別是什麼?
- 27. Python - 「a」和「a」的區別?
- 28. 列表(a)和[a]之間有什麼區別?
- 29. 「long int a = 2」和「int a = 2L」有什麼區別?
- 30. a // b和int(a/b)之間有什麼區別?
不要輕易相信 - 不是所有的手冊頁都是一樣的。我說:「寫作開放。如果該文件不存在,則會創建該文件。流位於文件的末尾。隨後對文件的寫入將始終結束於當前文件的結尾,而不管任何介入fseek(3)或類似的.'和'a + Open用於讀取和寫入。如果該文件不存在,則會創建該文件。流位於文件的末尾。後續對文件的寫入操作將始終結束於文件的當前結束位置,而不管任何干預fseek(3)或類似操作。' –
快速測試顯示首次讀取非空文件(在任何寫入之前)返回EOF。所以在這種情況下它從結尾讀取。這是在Mac OS X上。 –