代码之家  ›  专栏  ›  技术社区  ›  Peter

如何确保数据在文件IO(WriteFile())上刷新到HDD(未缓冲)

  •  0
  • Peter  · 技术社区  · 10 年前

    在长时间且可能会造成系统压力的操作过程中,我通过文件句柄和 WriteFile

    我注意到,当我用鼠标右键单击该文件并在Windows中询问其属性时,我根本看不到它已被更新。修改的时间/数据不能反映我所做的实际更新。

    我意识到Windows可能会缓冲内存中的内容,直到文件句柄关闭。整个想法是更新文件,这样当系统崩溃时,我们至少知道我们从哪里得到了(某种程度上)。

    如何确保在不关闭文件句柄的情况下刷新内容?

    1 回复  |  直到 10 年前
        1
  •  1
  •   André Fratelli    10 年前

    我建议你要么试试 flushing the buffer 或检查 WriteFile 返回TRUE。如果不是的话,很可能是出了问题,比如拒绝许可或其他什么。您可以使用 GetLastError 为此。