8

有没有 fsync for windows 的替代品?(C++ 构建器)

fsync 需要包含 unistd.h 并且仅适用于 unix 系统

谢谢!

4

3 回答 3

3

从手册页:

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

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

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

于 2017-11-15T14:08:24.290 回答
1

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

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

于 2021-07-10T02:01:32.087 回答
1

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

或者,FlushFileBuffers可能对您有用,但它是特定于 Windows 的。

于 2015-10-14T18:51:06.230 回答