C Linux终端-打印大量数据

C Linux终端-打印大量数据,c,linux,terminal,C,Linux,Terminal,我正在用C语言编写应用程序,可以监控远程计算机的系统信息、登录用户数、可用内存等 我将把收集到的信息写入标准输出。但通常会有更多的信息,而不是终端的一个窗口,所以我需要实现某种“滚动”结果 我认为最简单的解决方案是打印前25行,然后等待用户向上或向下推,并相应地重写所有行 是否有更简单/更优雅的方式在终端上处理此类输出 编辑:忘了提一下,如果一些新输入来自远程计算机,我想刷新数据,例如:进程数更改。使用外部寻呼机,如更多(或更少)对输出进行分页。Unix的优势在于结合简单的命令,创建管道,而不是

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

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

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

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


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

使用外部寻呼机,如
更多
(或
更少
)对输出进行分页。Unix的优势在于结合简单的命令,创建管道,而不是重新设计现有的功能。

听起来你需要诅咒

这是一个例子


这是一个老式的终端GUI库。像
top
这样的东西让menuconfig
使用它,所以它在每个系统上都可以使用。它可以让你不再考虑“打印25行并刷新”,而更多地考虑“将数据放入可滚动的文本区域”。

如何打印所有数据并使用类似less的寻呼机滚动输出?你说的是可滚动的文本区域,但执行此可滚动面板将包括创建一个Ncurses窗口,打印字符串,然后聆听用户输入,然后将所有内容上移或下移一行,然后编写新的?@Andna:根据您所做的,您不必编写新的。您可以使用
newpad
获取
pad
并更改其位置(一次函数调用)。