繁体   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