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