我有一个程序,我想将它的输出重定向到另一个文件。 我尝试使用标准
foo.exe > out.txt
这不起作用且文件为空,但是当我从cmd运行它时,我可以正常看到所有消息。
我注意到的是,如果我没有正确启动程序,并获取其使用消息,它确实有效。
我检查了源代码(C ++),看来打印(使用printf)不是来自同一个帖子。
为什么会发生这种情况的任何想法,我该如何解决?
答案 0 :(得分:2)
我设法通过添加
解决了这个问题setbuf(stdout,NULL);
到节目主要。
我猜stdout缓冲区没有刷新。
答案 1 :(得分:0)
程序可以使用stderr或stdout输出,默认fd为2和1.
只需使用“2>& 1”,就像'dup2(1,2)'一样。