2

我正在用 C 编程语言编写应用程序,可以监控远程计算机系统信息、登录用户数、可用内存等。

我会将收集到的信息写入标准输出。但通常会有比终端的一个窗口更多的信息,所以我需要在结果中实现某种“滚动”。

最简单的解决方案是我认为打印例如前 25 行,然后等待用户向上或向下推并相应地重写所有行。

是否有一些更简单/更优雅的方式来处理终端上的此类输出?

编辑:忘了提,如果一些新输入来自某个远程计算机,我想刷新数据,例如:进程数更改。

4

2 回答 2

3

使用外部分页器,例如more(或less) 对输出进行分页。Unix 的优势在于组合简单的命令,创建管道而不是重新发明已经存在的功能。

于 2012-06-06T21:09:12.283 回答
3

听起来你需要诅咒。

这是图书馆指南ncurses

这是一个用于终端的老式 GUI 库。喜欢topmake menuconfig使用它,所以它在每个系统上。它允许您停止思考“打印 25 行并刷新”以及更多“将数据放入可滚动的文本区域”的想法。

于 2012-06-06T21:16:07.350 回答