2

FAT32システムでフラッシュを使用しています。rtos(SMX)のファイルシステムAPIを使用して、ファイルにデータを継続的に書き込んでいます。ただし、突然の電源オフ後、ファイルには、システムの再起動時に最初のファイルエントリのすぐ上にガベージ値が含まれます。

chkdskユーティリティを実行しましたが、問題は解決しません。

汚れた電源オフでも、これらのゴミのエントリをどのように取り除くことができますか?

4

1 に答える 1

0

突然の停電が予想される場合は、ファイル書き込みのすべてのキャッシュ/バッファリングを無効にする必要があります。もちろん、部分的に書き込まれたファイルも処理する必要がありますが、少なくとも末尾のゴミを防ぐ必要があります。

使用している API はわかりませんが、これは、ドライブを「同期的に」( mount -o syncLinux などで) マウントするか、特定のオプションを使用して個々のファイルを開くことによって行われる可能性があります。ただし、個々のファイル書き込みでバッファリングを無効にしても、FAT が破損し、すべてのファイルが失われる危険性があります。

于 2011-05-17T17:20:14.563 に答える