无法重定向程序的控制台输出

时间:2013-08-18 11:00:12

标签: c++ windows multithreading console io-redirection

我有一个程序,我想将它的输出重定向到另一个文件。 我尝试使用标准

foo.exe > out.txt

这不起作用且文件为空,但是当我从cmd运行它时,我可以正常看到所有消息。

我注意到的是,如果我没有正确启动程序,并获取其使用消息,它确实有效。

我检查了源代码(C ++),看来打印(使用printf)不是来自同一个帖子。

为什么会发生这种情况的任何想法,我该如何解决?

2 个答案:

答案 0 :(得分:2)

我设法通过添加

解决了这个问题
setbuf(stdout,NULL);

到节目主要。

我猜stdout缓冲区没有刷新。

答案 1 :(得分:0)

程序可以使用stderr或stdout输出,默认fd为2和1.

只需使用“2>& 1”,就像'dup2(1,2)'一样。