Windows等同于sync()

时间:2011-09-27 20:35:20

标签: c windows winapi

我在嵌入式处理器或Linux上进行大部分编程。当我需要将数据同步到我的持久存储时,我通常使用sync(2)系统调用。 Windows是否有同等效力?

4 个答案:

答案 0 :(得分:4)

http://msdn.microsoft.com/en-us/library/aa364439(VS.85).aspx http://www.codeproject.com/KB/system/EjectMediaByLetter.aspx

FlushFileBuffers具有卷的句柄。您必须为每个卷执行此操作:(

答案 1 :(得分:3)

使用FlushFileBuffers,但您需要一个需要刷新文件的句柄。

答案 2 :(得分:0)

如果您使用posix文件函数(fopen()等),可以使用_flushall:

http://msdn.microsoft.com/en-us/library/s9xk9ehd%28v=vs.80%29.aspx

答案 3 :(得分:0)

参见此处:https://jeffpar.github.io/kbarchive/kb/066/Q66052/

最初使用fopen打开文件时,请在最后一个选项中加入“ c”模式选项:

fopen( path, "wc") // w - write mode, c - allow immediate commit to disk

然后,当您要强制刷新到磁盘时,调用

_flushall()

我们在致电

之前先打了这个电话
fclose()

请注意,这种方法不需要FlushFileBuffers 所需的管理权限。

从上述网站上

“ Microsoft C / C ++ 7.0版为fopen()引入了” c“模式选项 功能。当应用程序打开文件并指定“ c”模式时, 当运行库将文件缓冲区的内容写入磁盘时, 应用程序调用fflush()或_flushall()函数。 “