我们有一个在 windows 和 unix 上运行的 c++ 应用程序(控制台)。此应用程序使用输出文件来输出系统调用/打印/等的详细日志文件。问题是,在某些情况下,我们可能会在添加新功能后获得 11/2 信号。
现在,每当发生这种情况时,我们都不会从日志文件中获取“几乎完整”的信息来追踪错误/问题的根源,因为当信号 11 发生时输出文件没有正确关闭。(它只是部分或零大小)
我们考虑在每个 fprintf 行打印之后添加一个刷新命令。问:
- 这被认为是一种很好的做法吗?
- fflush 在 windows 平台上运行良好吗?
- 在系统可能意外崩溃时保留日志文件的任何想法/其他方法?