gpt4 book ai didi

c++ - 如何判断文件刷新在关闭文件之前确实有效?

转载 作者:行者123 更新时间:2023-12-02 10:04:15 24 4
gpt4 key购买 nike

我想确保在调用flush时将数据刷新到磁盘。

一个简单的代码示例是:

int main() {
std::ofstream outfile("test.txt");
for (int n = 0; n < 100; ++n) {
outfile << n;
outfile.flush();
// TODO: insert code to make sure data is flushed to disk
// I tried using the stat file size but it does not always grow after flush.
}
outfile.close();
return 0;
}

我确信 std::ofstream正确实现了冲洗功能。实际上,我正在尝试测试另一个库的flush函数,这只是一个示例。

最佳答案

outfile.flush()将流缓冲区刷新到操作系统。如果要确保将系统缓冲区刷新到磁盘,则必须发出特定于OS的系统调用。在符合POSIX的系统上,您可以调用sync()中定义的 <unistd.h>

关于c++ - 如何判断文件刷新在关闭文件之前确实有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61019070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com