我用C编程语言编写应用程序,可以监视远程计算机系统信息,登录用户数,可用内存等。
我会将收集的信息写入标准输出。但通常会有一个单一的终端窗口有更多的信息,所以我需要实现某种“滚动”结果。
最简单的解决方案是我想打印例如前25行,然后等待用户向上或向下推,并相应地重写所有行。
是否有一些更简单/更优雅的方式来处理终端上的此类输出?
编辑:忘记提及,如果某些新输入来自某些远程计算机,我想刷新数据,例如:进程数量发生变化。答案 0 :(得分:3)
使用外部寻呼机(例如more
(或less
)对输出进行分页。 Unix的优势在于结合简单的命令,创建管道而不是重新发明已经存在的功能。
答案 1 :(得分:3)
听起来你需要诅咒。
这是guide to the ncurses
library。
这是一个老式的终端GUI库。 top
和make menuconfig
之类的东西使用它,因此它适用于每个系统。它允许你停止思考“打印25行和刷新”以及更多“在可滚动的文本区域中放置数据”。