在Windows上有OutputDebugString功能,如何在Linux上执行相同操作?
更新:stderr和stdlog不是我想要的。那些被重定向到stdout。
P. S.和syslog
没什么不同。
答案 0 :(得分:10)
我不确定OutputDebugString
究竟做了什么,但标准C ++定义了标准错误流std::cerr
和标准日志记录流std::clog
。两者都在标题<iostream>
中声明。
这些默认情况下绑定到Linux中的相同文件描述符;区别在于cerr
是无缓冲的,而clog
是缓冲的(我相信它是行缓冲的)。
Linux中没有“系统调试器”的概念。如果要写入系统日志,可以使用syslog(3)
。
答案 1 :(得分:5)
在Linux或Posix系统中可能没有完全相同的功能。
您可以输出到stderr
(如果是C或C ++),或者输出到C ++中的std::cerr
或std::clog
。
请注意,对于大多数shell,您可以以不同的方式启动某个程序和redirect,并且可以独立地启动它们的stdout&amp;他们的stderr。
对于系统日志记录,您可以使用openlog&amp; syslog
函数。
如果要输出到控制终端(如果存在),可以使用/dev/tty设备。
答案 2 :(得分:2)
qDebug
被重定向到stdout。在Windows上无法像OutputDebugString
那样获得两个不同的输出流。 Linux上似乎没有专用的调试输出流。