如何安全地在USB记忆棒上写入数据 - Linux(ARM) - C ++

时间:2014-04-25 21:17:19

标签: linux file-io mkdir fsync

我尝试在USB记忆棒上复制一些文件夹和文件,并在完成所有操作后立即将USB记忆棒移除。实现是这样的:

  • 使用mkdir
  • 在USB记忆棒上创建相应的文件夹结构 创建文件夹后,每个目录描述符上的
  • fsync
  • 复制文件内容(使用C ++流)
  • 复制每个文件后,每个文件描述符上的
  • fsync

复制完最后一个文件后,我取下USB记忆棒(~500ms - 1s)。但有时缺少整个文件夹结构。为了避免这种情况,我在复制最后一个文件后在每个目录描述符上再次使用fsync。这次所有文件和文件夹都出现在USB记忆棒上,但有时我在文件夹结构中有垃圾或USB记忆棒已损坏。 USB记忆棒文件系统是vfat。有关如何正确保存数据的任何想法?

1 个答案:

答案 0 :(得分:3)

在卸下设备之前卸下设备。对于像VFAT这样的非日志文件系统,无法保证文件系统在安装时在磁盘上处于一致状态。