Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 C 编程语言编写应用程序,可以监控远程计算机系统信息、登录用户数、可用内存等。
我会将收集到的信息写入标准输出。但通常会有比终端的一个窗口更多的信息,所以我需要在结果中实现某种“滚动”。
最简单的解决方案是我认为打印例如前 25 行,然后等待用户向上或向下推并相应地重写所有行。
是否有一些更简单/更优雅的方式来处理终端上的此类输出?
编辑:忘了提,如果一些新输入来自某个远程计算机,我想刷新数据,例如:进程数更改。
使用外部分页器,例如more(或less) 对输出进行分页。Unix 的优势在于组合简单的命令,创建管道而不是重新发明已经存在的功能。
more
less
听起来你需要诅咒。
这是图书馆指南ncurses。
ncurses
这是一个用于终端的老式 GUI 库。喜欢top并make menuconfig使用它,所以它在每个系统上。它允许您停止思考“打印 25 行并刷新”以及更多“将数据放入可滚动的文本区域”的想法。
top
make menuconfig