是否有替代Windows的fsync? (C ++ builder)
包含unistd.h所需的Fsync,它仅适用于unix系统
谢谢!
答案 0 :(得分:3)
从手册页:
fflush()强制写入所有用户空间 通过流缓冲给定输出或更新流的数据 底层写功能。
上面提到的write函数告诉操作系统文件的内容应该是什么。此时,所有更改将在实际提交到磁盘之前保存在文件系统缓存中。
POSIX函数fsync()
告诉操作系统将其缓存中的所有更改同步到磁盘。正如其他人所说,你可以在Windows平台上使用FlushFileBuffers
。
答案 1 :(得分:0)
fflush
函数可以执行您需要的操作,但它仅适用于文件句柄。
或者,FlushFileBuffers
可能适合您,但它是Windows特定的。
答案 2 :(得分:0)
_commit
看起来差不多,它需要一个文件描述符,就像 fsync
一样:
_commit 函数强制操作系统将与 fd 关联的文件写入磁盘。此调用可确保立即刷新指定的文件,而不是由操作系统自行决定。