在我的应用程序关闭之前,freopen不会写入数据

时间:2013-01-03 12:43:42

标签: c++ c qt

我正在编写一个Qt GUI应用程序(用于执行XSL转换)。要将错误消息打印到文件,我正在使用如下调用:

freopen("my-error-file.txt", "w", stderr);
// call to libxslt function, which possibly prints to stderr
fclose(stderr);

我遇到的问题是,当my-error-file.txt立即创建时,它没有任何内容。当我关闭应用程序时,错误内容将写入该文件。我认为这是正确的行为,但我实际想要的行为是my-error-file.txt写入并立即关闭,无论GUI窗口是否关闭。

我错过了一个函数调用吗?

我尝试了fflush(stderr),但没有效果。

1 个答案:

答案 0 :(得分:0)

我是个笨蛋。我在fclose之前调用了fflush,但函数在调用这些函数之前就已经返回了。