【发布时间】:2012-03-28 20:10:18
【问题描述】:
我正在尝试使用文件重定向 stdout 和 stderr 的输出。我正在使用 freopen,它会在正确的目录中创建文件,但文件是空白的。当我注释掉重定向标准输出和标准错误的代码时 - 输出显示在控制台上。
代码如下:
freopen(stderrStr.c_str(), "a+", stderr); //where stderrStr and stdoutStr are the path/file name
freopen(stdoutStr.c_str(), "a+", stdout);
fclose(stdout);
fclose(stderr);
我在 main 中放置了一个 printf("I WORK") 并且没有它输出但不会写入文件的抑制剂。
【问题讨论】:
-
永远不要关闭stdout或stderr,它会在程序结束时自动关闭。
-
@dark_charlie 我从cplusplus.com/reference/clibrary/cstdio/freopen 得到了这个例子,我注释掉了那些关闭的语句,它也没有工作
标签: c++ linux stdout stderr freopen