gpt4 book ai didi

c++ - 如果机器随后立即崩溃,fflush() 与 fclose() 一样能将数据保存到磁盘吗?

转载 作者:行者123 更新时间:2023-12-01 22:35:45 24 4
gpt4 key购买 nike

我们的库中有一个记录器,可以将文本行写入磁盘以供以后诊断。我们将它用于多种目的,包括分析由应用程序或我们的库引起的硬机器挂起。

我们会向日志文件写入一行,然后调用 fclose(),然后在需要写入另一行时重新打开它以进行追加。这比写入一行后调用 fflush() 慢 35 倍。

所以我的问题是,使用 fclose() 方法比使用 fflush() 方法更有可能将最后一行成功存储在文件中吗?如果是这样,为什么?如果不是,如果不更安全地将数据写入磁盘,那 35 倍的时间忙于做什么?

顺便说一句,我们最关心 Windows。

最佳答案

来自http://en.cppreference.com/w/c/io/fflush :

For output streams (and for update streams on which the last operation was output), writes any unwritten data from the stream's buffer to the associated output device.

我想说 fflush 应该可以满足您的需求。

关于c++ - 如果机器随后立即崩溃,fflush() 与 fclose() 一样能将数据保存到磁盘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32774948/

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