簡體   English   中英

如何確保將數據寫入文件

[英]How to ensure data is written to file

我正在為OS Linux的微控制器編寫日志記錄程序。 還有一個計算功能,其中這些結果應存儲在HDD上,並在重新啟動記錄器時加載。

我的問題是,當我在μC正在覆蓋某些數據的同時從電流中拔出μC時,覆蓋的數據可能會丟失。

那么,如何覆蓋某些數據,但是如果在µC被覆蓋的同時拔出插頭,如何確保覆蓋的數據或寫入的數據是一致的呢?

編程語言是C ++,所以如果有boost庫甚至更好的stl類型,我一定會喜歡上它。

使用stream << flush; 將C ++輸出緩沖區刷新到操作系統,並使用Linux fsync()從操作系統緩沖區刷新到磁盤。

后者需要Unix文件描述符,因此您需要使用與實現相關的方法來從C ++流中獲取FD。 請參閱從std :: fstream檢索文件描述符

為了提供額外的保護,您需要使用帶有日志記錄的抗故障文件系統。 有關示例,請參見https://www.ibm.com/developerworks/library/l-journaling-filesystems/index.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM