替换sync()命令

时间:2013-10-31 11:09:56

标签: c++ linux windows qt sync

我需要在Windows上移植一个应用程序。最初该应用程序是在Linux上编写的,它使用Linux特定的命令。我用sync()堆叠在一个地方。 Windows没有这样的实用程序。代码看起来像

QSettings *data
...
data->setValue("some_var", var);
data->sync();
sync();

这是C ++文件的和平。我不懂C ++。它不是由我写的。我用其他语言。那么我如何才能在Windows上运行它或者如何重写该部分呢?

2 个答案:

答案 0 :(得分:2)

基本上,您可以忽略系统特定的sync()调用。即使在Linux上也不需要它。 QSettings为你做对了。

答案 1 :(得分:1)

如果您可以访问已打开的所有文件,我相信在Linux上调用sync()等同于覆盖所有文件句柄并在Windows上刷新它们,可能是使用{{3 }}

编辑1

如果您使用的是C文件界面(因为您来自Linux),FlushFileBuffers()是您的朋友(您仍然需要访问所有打开的文件。)

编辑2

我看到您可以使用fflush()来电。不确定它与Linux的sync()的相似性,但他们似乎做了同样的事情。我对使用以下划线开头的函数也有点谨慎。