2011-05-17 62 views
1

我正在使用FAT32系统的闪存。我使用来自rtos(SMX)的文件系统API连续地将数据写入文件。但是,在突然断电后,该文件在系统重新引导时的第一个文件条目的上方包含垃圾值。突然掉电后文件中的垃圾数据

我运行chkdsk实用程序,但它不能解决任何问题。

任何想法如何即使在不洁的断电情况下也能摆脱这些垃圾条目?

+0

+1有趣的问题。 – pixelbobby 2011-05-17 17:14:09

回答

0

如果您希望突然断电,您需要禁用文件写入的所有缓存/缓冲。当然你也需要处理部分写入的文件,但至少应该防止尾随垃圾。

我不知道您正在使用的API,但可以通过“同步”安装驱动器(例如,在Linux中为mount -o sync)或使用特定选项打开单个文件来完成。如果您在单个文件写入时禁用了缓冲功能,那么您仍然可能会冒损坏FAT的风险,并且会丢失所有文件。

+0

我不希望突然断电,但是,我需要确保每个都写入此文件,并且不应该有任何垃圾数据。 – Punit 2011-05-17 17:34:43

+0

如果您不能说它不会发生,例如由于备用电源,那么您在实践中“期待它发生”。 – 2011-05-17 17:49:31