0

USBスティックにいくつかのフォルダーとファイルをコピーしようとしていますが、すべてが完了したらすぐにUSBスティックを取り外します。実装は次のようなものです。

  • を使用して、USB スティックに対応するフォルダー構造を作成します。mkdir
  • fsyncフォルダが作成された後の各ディレクトリ記述子
  • ファイルの内容をコピーします (C++ ストリームを使用)
  • fsync各ファイルがコピーされた後の各ファイル記述子

最後のファイルがコピーされた直後に、USB スティックを取り外します (~500ms - 1s)。ただし、フォルダー構造全体が欠落している場合があります。それを避けるためにfsync、最後のファイルがコピーされた後、各ディレクトリ記述子で再度使用しました。今回は、すべてのファイルとフォルダーが USB スティックに存在しますが、フォルダー構造にゴミが入ったり、USB スティックが破損したりすることがあります。USB スティックのファイルシステムは vfat です。データを正しく保存する方法について何か考えはありますか?

4

2 に答える 2

3

デバイスを取り外す前に、マウントを解除してください。VFAT のようなジャーナリングされていないファイルシステムの場合、ファイルシステムがマウントされている間、ディスク上で一貫した状態になるという保証はありません。

于 2014-04-25T21:53:17.600 に答える