如何在Linux(GCC)中打印到输出(而不是stdout)?

时间:2011-12-04 13:49:21

标签: c++ linux

在Windows上有OutputDebugString功能,如何在Linux上执行相同操作?

更新:stderr和stdlog不是我想要的。那些被重定向到stdout。 P. S.和syslog没什么不同。

3 个答案:

答案 0 :(得分:10)

我不确定OutputDebugString究竟做了什么,但标准C ++定义了标准错误流std::cerr和标准日志记录流std::clog。两者都在标题<iostream>中声明。

这些默认情况下绑定到Linux中的相同文件描述符;区别在于cerr是无缓冲的,而clog是缓冲的(我相信它是行缓冲的)。

Linux中没有“系统调试器”的概念。如果要写入系统日志,可以使用syslog(3)

答案 1 :(得分:5)

在Linux或Posix系统中可能没有完全相同的功能。

您可以输出到stderr(如果是C或C ++),或者输出到C ++中的std::cerrstd::clog

请注意,对于大多数shell,您可以以不同的方式启动某个程序和redirect,并且可以独立地启动它们的stdout&amp;他们的stderr。

对于系统日志记录,您可以使用openlog&amp; syslog函数。

如果要输出到控制终端(如果存在),可以使用/dev/tty设备。

答案 2 :(得分:2)

Linux上的

qDebug被重定向到stdout。在Windows上无法像OutputDebugString那样获得两个不同的输出流。 Linux上似乎没有专用的调试输出流。

相关问题