basic_managed_mapped_file.flush()是否立即写入磁盘?

时间:2014-05-15 02:52:53

标签: boost

我使用basic_managed_mapped_file,我希望在程序运行时备份文件。

如何确保将数据写入磁盘以进行备份?

1 个答案:

答案 0 :(得分:0)

答案在逻辑上是“是”。

操作系统将确保写入数据,我相信即使您的进程会在下一次崩溃。

但是,如果你

    在执行任何其他操作之前,
  • 必须确保数据到达磁盘
  • 需要确保数据以任何特定顺序(例如日记/意图日志记录)点击磁盘
  • 需要确保数据安全地面对例如电力故障

然后您需要在大多数操作系统上添加磁盘sync调用。如果您需要这种级别的详细信息(更糟糕的是,以便携式方式),主题很快就会变得很难,我会推迟到

  来自eat my data: how everybody gets file IO wrong

Stewart Smith

我还镜像了视频/幻灯片以防万一(见here