我想要一个解决方案,允许我将ncurses
应用程序分离到不同的终端仿真器窗口并查看标准命令的输出,如当前的'cout' - 用于调试等。
我见过很多写入文件并使用tail
的解决方案,但这看起来非常简陋和缓慢。 BTW。我不知道从哪里开始,我对ncurses很新。
答案 0 :(得分:0)
首先,ncurses使用标准输出,因此只需使用' cout'会混淆输出。通常,您需要使用标准错误(' cerr')来代替调试等。
如果您不想使用简单文件和tail
(除非您的应用程序在某种程度上极端),否则您可以使用这样的命名管道:< / p>
mkfifo debug-pipe
然后在新终端中运行您的应用程序(例如xterm)并将错误输出重定向到命名管道。
xterm -e "my-application 2> debug-pipe" &
最后将命名管道转储到第一个终端(或任何终端)。
cat debug-pipe
(顺便说一句,我想我明白你最初想象的是什么样的解决方案。如果第二个终端模拟器可以将标准错误重定向到它自己的标准错误,那么它只会出现在第一个终端中。终端模拟器很容易做到这一点,但据我所知,没有人有这个选项。)
答案 1 :(得分:0)
您可以通过以下两种方式之一初始化curses:
例如,ncurses测试程序ditto
uses newterm
打开输出显示在一个或多个xterm上。这是一个截图:
原则上,您可以使用 当前 终端进行输入,并在 另一个上显示ncurses输出 终端(虽然是随便的,我不记得任何有用的程序,只做这个 - 只有演示)。
答案 2 :(得分:-1)
使用screen
或tmux
个应用可以实现分离和重新附加任何控制台会话。