我想编写一个程序,像 htop 一样在 shell 中显示其输出,而不是仅仅运行程序并使用 watch 命令。我已经浏览了 htop 源代码,但仍然有点迷茫。在使用的外壳中是否有超出 tty 的输出,或者是否所有 htop 面板都是自定义的并且打开这样的输出对于像 bash 这样的外壳来说不是本机任务?
谢谢。
htop 作者在这里。您正在寻找的是NCurses库。使用 NCurses,您可以在 C 中实现全屏文本模式应用程序。
它提供了一组用于在终端上“绘图”的原语:即move()
转到屏幕上的 XY 坐标、更改颜色、擦除部分屏幕等功能。它还提供了一些高级构造,例如“窗口”,您可以通过它单独滚动屏幕的各个部分,但在 htop 中我不使用它并使用较低级别的原语实现我的可滚动面板“手动”绘制它们。