这些命令如何输出到 stdout?我可以使用 C 中的 printf() 函数,但这只会向屏幕添加更多字符,而不是替换终端中给定位置的任何字符。
答案1
他们使用ncurses
(或类似的)库:
库
ncurses
例程为用户提供了一种独立于终端的字符屏幕更新方法,并进行了合理的优化。此实现是“新版 curses”(ncurses
),是curses
已停产的4.4BSD classic 的认可替代品
查看
ncurses
官方网站- ncurses 入门
- 最佳 ncurses Linux 控制台程序
- ncurses 等如何工作?(堆栈溢出)
- 为什么某些工具(例如 nano、less)退出后不会在终端中留下任何内容?(Unix 和 Linux SE)