替代Windows c ++的Fsync

时间:2015-10-14 18:45:03

标签: c++ windows fsync

是否有替代Windows的fsync? (C ++ builder)

包含unistd.h所需的Fsync,它仅适用于unix系统

谢谢!

3 个答案:

答案 0 :(得分:3)

从手册页:

  

fflush()强制写入所有用户空间          通过流缓冲给定输出或更新流的数据          底层写功能。

上面提到的write函数告诉操作系统文件的内容应该是什么。此时,所有更改将在实际提交到磁盘之前保存在文件系统缓存中。

POSIX函数fsync()告诉操作系统将其缓存中的所有更改同步到磁盘。正如其他人所说,你可以在Windows平台上使用FlushFileBuffers

答案 1 :(得分:0)

fflush函数可以执行您需要的操作,但它仅适用于文件句柄。

或者,FlushFileBuffers可能适合您,但它是Windows特定的。

答案 2 :(得分:0)

_commit 看起来差不多,它需要一个文件描述符,就像 fsync 一样:

<块引用>

_commit 函数强制操作系统将与 fd 关联的文件写入磁盘。此调用可确保立即刷新指定的文件,而不是由操作系统自行决定。