gpt4 book ai didi

c - 如何使 fprintf() 立即写入

转载 作者:太空狗 更新时间:2023-10-29 15:54:13 24 4
gpt4 key购买 nike

写入文件的一种方法是使用 fprintf()。但是,此函数不会立即将结果写入文件。当程序终止或完成时,它似乎立即写入所有内容。

我的问题如下:我有一个程序需要很长时间才能运行(大数据集需要 4-5 小时)。这段时间想看中间结果,这样就不用等5个小时了。我的大学使用 Sun Grid Engine 提交作业。正如你们大多数人所知,您必须等到工作完成才能看到最终结果。因此,我希望能够将中间结果写入文本文件,并在程序处理时查看更新的结果(如果我使用 printf 也是如此)。

如何修改 fprintf()立即将我想要的任何内容写入目标文件?

最佳答案

您可以在每次写入后使用fflush 函数将输出缓冲区刷新到磁盘。

fprintf(fileptr, "writing to file\n");
fflush(fileptr);

如果您使用的是 POSIX 系统(即 Linux、BSD 等),并且您真的想要确保文件已写入磁盘,即您想要刷新内核缓冲区以及用户空间缓冲区,也使用 fsync:

fsync(fileno(fileptr));

但是 fflush 应该足够了。除非您发现需要,否则不要为 fsync 而烦恼。

关于c - 如何使 fprintf() 立即写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45339874/

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