![](/img/trans.png)
[英]How to ensure a dump file is written by C++ application in case of unhandled exception
[英]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.