比方說,我有地方在我的程序打開文件與
fopen
然後我的程序做別的東西的功能(比如,試圖計算的東西)然後它崩潰,因爲一些空指針或堆棧溢出或分段錯誤等。有沒有可能會破壞/弄亂我打開的文件?能的fopen或fstream的等意外銷燬文件C/C++如果我打開它寫作,該怎麼辦?那會更危險嗎?
回答
如果你打開閱讀然後沒有,你不能損壞文件的文件。
如果你打開寫然後是文件,總是可以離開文件中的某些損壞狀態。
我想我可以非常依賴操作系統。但是,常識說你的答案是正確的。 – bolov
呃,任何使您的數據易受攻擊的OS/FS無法使用。這不僅僅是常識,它還是必需的功能。 –
至少在某些平臺和文件系統類型中,讀取文件將更新與文件關聯的一些元數據 - 特別是時間戳信息。所以讀取實際上涉及到寫入文件系統的某個部分。在Linux filesytems上,據我所知,所討論的元數據區域的大小是固定的,我認爲寫入失敗可能會導致文件或目錄有缺陷。無論如何,我從來沒有見過它發生。但我不認爲它可以安全地假設,在任何情況下,讀取過程中的失敗都不可能讓文件系統不快樂。 –
- 1. 允許std :: fstream被銷燬關閉相關文件嗎?
- 2. 意外調用表單銷燬
- 3. 「銷燬」的功能
- 4. 銷燬從外面
- 5. 的std ::矢量銷燬和意外的內存泄漏
- 6. AngularJS上的銷燬功能
- 7. asXML銷燬xml文件?
- 8. 銷燬功能Tkinter
- 9. Sails.js水線銷燬「低於或等於」條件
- 10. std :: vector銷燬和意外的內存泄漏點2
- 11. 銷燬控件
- 12. ActiveRecord銷燬 - 無例外
- 13. 銷燬事件或將外部DOM項鍊接到Backbone模型
- 14. 在哪裏把默認銷燬在jQuery UI 1.8.1小部件的銷燬功能
- 15. 銷燬Dijit中的微件
- 16. 停止或銷燬jQuery插件
- 17. 銷燬或關閉HttpClient Android
- 18. Laravel 5註銷或會話銷燬
- 19. 銷燬GtkBuilder是否銷燬所有創建的小部件?
- 20. 如何銷燬組件銷燬的反應FormControl?
- 21. 銷燬控件VB.net
- 22. 不能寫入fstream文件
- 23. Glassfish RAR5035:從池中銷燬資源時出現意外異常
- 24. 如何禁用或銷燬jQuery插件功能?
- 25. 銷燬會話中的塔或Python
- 26. 銷燬
- 27. 關閉或銷燬所有視圖控制器,操作表等?
- 28. Aspnet意外註銷
- 29. jQuery的DateInput銷燬
- 30. jQuery的銷燬近
如果您打開一個文件進行寫入,並且給定的文件存在,那麼它的內容無論如何都會被銷燬。 –
哪種語言,C或C++?他們是不同的語言。 C++有'ifstream',C沒有。 C++有流提取操作符,可以被重載以讀取自定義類的實例。 –
打開文件內容破壞取決於您打開的方式。 w和w +並且內容消失了。 a,r + a +和內容仍然存在。 – user4581301