【发布时间】:2012-03-17 21:11:29
【问题描述】:
我有一个完全由控制台/终端控制的更大的 C++ 应用程序。打印了很多调试输出,但是它开始变得混乱。重要信息在各个模块的一般状态信息之间丢失。禁用这些输出是不可能的,因为它们实际上是故障的重要指标。
相反,我认为“拆分”屏幕可能更有帮助,即在屏幕(终端)的一种额外区域中具有特定输出。这可以被认为是一个状态栏(可能是多行)。
我可以使用 ANSI 代码轻松做到这一点,但是仍然有许多 printfs 总是会弄乱输出。滚动也以这种方式被破坏。
一个选项可能是使用 ncurses,但是我不想将整个应用程序移植到它。我试图找出是否可以在 ncurses 应用程序中显示正常的 printf 输出(有点像终端控制台中的终端 :-)),但没有找到。
我正在寻找任何可以让我轻松添加类似内容的建议:
- 在终端有一个固定大小的区域(前 N 行)输出一些状态信息
- 屏幕的其余部分显示 printf 输出
- 滚动时,固定大小的区域/状态栏应该不会产生不良影响(即我想正确滚动 printf 输出而不丢失任何内容!)
代码将在笔记本电脑上的 Linux 机器上运行(通常使用 gnome 终端)或通过 ssh 连接远程运行。
【问题讨论】: