解决linux中flash掉电丢失数据问题

2019-07-13 07:51发布

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
我在一个嵌入式linux项目中提供了一个配置界面用来更改机器的参数,我将参数以文件形式保存在flash中。现在发现一个问题,如果更改了参数,然后用reboot热重启,则参数已经被更改,但如果断电则发现参数并没有被修改,而且文件甚至可能被清空。
经过排查,原因是linux中并没有立即在flash进行数据交换,而是每过一段时间缓存写入flash。linux提供了强制同步缓存与flash的命令sync,调用此命令即可实现断电保存数据。
在qt中实现的方法: QFile file1("/etc/eth0-setting"); file1.open(QIODevice::WriteOnly); ...... ...... ...... file1.close(); system("sync");