windows c++的Fsync替代方案

Alternative to Fsync for windows c++

本文关键字:方案 Fsync c++ windows      更新时间:2023-10-16

windows是否有fsync的替代方案?(c++ builder)

Fsync需要包含unist .h,仅适用于unix系统

谢谢!

fflush函数可以满足您的需要,但它只适用于文件句柄。

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

从手册页:

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

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

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

_commit看起来是对的,它需要一个文件描述符,就像fsync一样:

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