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

Vio*_*ffe 4 c++ linux

在Windows上有OutputDebugString函数,我如何在Linux上做同样的事情?

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

Fre*_*Foo 10

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

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

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

  • @VioletGiraffe:这意味着`syslog`在Linux手册的第3部分.`man 3 syslog`将显示它的联机帮助页. (2认同)

Bas*_*tch 5

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

您可以输出到stderr(如果在C或C++中),或输出到C++ std::cerr或std::clog在C++中.

请注意,对于大多数shell,您可以启动一些程序并以不同的方式重定向并独立地使用它们的stdout和它们的stderr.

对于系统日志记录,您可以使用openlog和syslog函数.

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