我正在将某些应用程序从Windows移植到Linux。默认情况下没有窗口,但可以打开其中一个窗口进行调试输出。我需要在Linux上做类似的事情。我发现可以从中使用XTerm,但是没有任何详细信息。
此新窗口必须由应用程序本身打开,因此我无法在XTerm中启动应用程序。
如何在CentOS 7上的C / C ++中执行此操作?
答案 0 :(得分:2)
此新窗口必须由应用程序本身打开,因此我无法在XTerm中启动应用程序。
您正在考虑像Windows开发人员,而不是Linux开发人员。在Linux中,GUI程序写入stdout / stderr或日志文件是常见的。如果用户希望查看调试输出,则可以从终端运行程序或打开日志文件。简单有效。打开调试窗口是一种Windows主义,您实际上不应该保留。
答案 1 :(得分:2)
大多数终端程序会关闭其标准输入/输出/错误,因此您不能简单地通过管道将输出输出到终端。 xterm有一个选项-S
,可让您将其I / O连接到伪终端,该终端用作您可以与终端进行通信的中间设备。
有一些使用此功能的应用程序,您可以对其进行研究以了解其工作原理。一个(multixterm
)依赖于通常未预先打包的工具包。另一个是带有ncurses的测试程序ditto
。 Debian及其派生发行版在ncurses-examples
包中提供了该功能(但是阅读源代码才是可行的方法)。关于该主题,没有任何有用的教程(请阅读相关的手册页)。
但是,检查正在运行的进程列表显示它正在通过管道(或伪终端)使用 rtfText
的输出,并重定向到GUI窗口。唯一知道的方法就是阅读源代码。