【发布时间】:2014-02-25 14:11:43
【问题描述】:
我想要一个功能,当我的应用程序崩溃时,已经写入的日志保存在日志文件中。但是使用cstdio 库中的fopen()/fwrite() 似乎不能做到这一点。所以当我的应用程序崩溃时,日志文件是 0KB。我想知道是否有任何文件处理库可以做到这一点?例如。提升?
【问题讨论】:
-
你试过
flush吗?但除此之外,这要么有点宽泛,要么是“寻找工具、库等”。
我想要一个功能,当我的应用程序崩溃时,已经写入的日志保存在日志文件中。但是使用cstdio 库中的fopen()/fwrite() 似乎不能做到这一点。所以当我的应用程序崩溃时,日志文件是 0KB。我想知道是否有任何文件处理库可以做到这一点?例如。提升?
【问题讨论】:
flush吗?但除此之外,这要么有点宽泛,要么是“寻找工具、库等”。
Classic XY question。解决方案是确保您的日志文件被刷新,而不是切换到一些新的 API 以希望它能解决问题。
查找fflush;当您想确保将写入提交到磁盘时调用它。
【讨论】:
在每行输出后调用fflush 应该会将内容放入文件中。但它会显着降低输出速度。
您还可以检查您的操作系统的本机 I/O 调用,但这不是可移植的。
【讨论】: