解决Linux中Flash掉电丢失数据问题

我在一个嵌入式Linux项目中提供了一个配置界面用来更改机器的参数,我将参数以文件形式保存在flash中。现在发现一个问题,如果更改了参数,然后用reboot热重启,则参数已经被更改,但如果断电则发现参数并没有被修改,而且文件甚至可能被清空。

经过排查,原因是Linux中并没有立即在flash进行数据交换,而是每过一段时间缓存写入flash。Linux提供了强制同步缓存与flash的命令sync,调用此命令即可实现断电保存数据。

在qt中实现的方法:

QFile file1("/etc/eth0-setting");   file1.open(QIODevice::WriteOnly);   ......   ......   ......   file1.close();   system("sync");  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwdssw.html