寻找一种在闪存驱动器上保存日志文件的好方法

寻找一种在闪存驱动器上保存日志文件的好方法

不确定这里是不是提出这个问题的正确地方,但是还是想问一下...

我有一些应用程序可以写入日志文件。现在我必须在只有闪存(嵌入式 MMC 和微型 SD)的系统上运行它。而且这台机器意外断电的可能性很高(这在应用程序创建时并没有计划)。因此,在最好的情况下,日志文件可能会被截断,在最坏的情况下,整个卷可能会被损坏。日志记录的生成速率是可变的,有时一秒钟就会生成几个。

问题是,如果我在写入每个日志记录后简单地调用文件刷新(和同步) - 这会导致闪存驱动器过度磨损吗? SD/MMC 内部控制器是否会在附加小块数据时优化写入,以便它使用当前扇区中的现有空间(?)还是会为每次写入分配一个新块?如果后者是真的,那么 SD/MMC 根本不适合日志文件?

相关问题(或相同的,重新表述):如果将行逐行附加到文件中(以附加模式打开文件,写入,关闭),如果没有满,最后一个物理块会被重用吗?或者最后一个块将被重新分配并将以前的数据复制到其中?

相关内容