【发布时间】:2011-12-31 20:27:09
【问题描述】:
我正在编写一个程序,它是另一个程序的一部分。在主程序中,他们将 cout 的默认方向重定向到一个 LOG 文件。为了调试我自己的程序,我需要将 cout 的输出重定向到 linux 中的控制台(终端)。我无法像示例中描述的方法那样保存控制台rdbuf:
http://www.cplusplus.com/reference/iostream/ios/rdbuf/
为了我的目的,有什么方法可以在 c++ 中获取 linux 控制台的句柄?
【问题讨论】:
-
Chris Dodd 的回答是正确的,但首先要确保你没有把事情复杂化。处理问题的常用方法是将实际输出与调试消息分开。将实际输出发送至
cout,将其他任何内容发送至cerr。这样,当您的程序的输出被重定向时,调试信息仍会显示在终端上。您甚至可以将标准输出和标准错误流重定向到不同的文件:./yourprogram 1>output.txt 2>debug.txt
标签: linux redirect console cout