在segfault上std :: ofstream是否正常关闭?

时间:2014-07-01 00:53:35

标签: c++ logging segmentation-fault std

当我的进程发生段错误时,std :: ofstream是否正常关闭并刷新缓冲区?我怀疑在segfault之前的日志消息丢失了,调试一个没有这些日志消息的长时间运行的c ++服务器是一件痛苦的事:(有谁知道登录文件的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

Segfaults通常是由程序中未定义的行为引起的;在那些情况下,不能保证会发生什么。实际上,如果没有处理程序函数,段错误通常会导致程序立即停止,因此ofstream没有机会冲洗自己。

您可以通过将std :: endl写入流来结束日志记录代码来解决此问题。这有冲洗水流的副作用。