加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.52wenzhou.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux C:如何在stdout之外显示我的文本应用程序输出?

发布时间:2021-01-08 08:13:22 所属栏目:Linux 来源:网络整理
导读:我的目标是创建一个可在Linux终端中播放的游戏.但是,有一个概念,我不知道如何命名,所以我的搜索空手而归. 像iptraf这样的程序如何在如此低的水平上访问输出,以便它们可以修改每个单元格的背景,前景和字符内容以及捕获所有键盘输入而不是shell? 我假设在某个

我的目标是创建一个可在Linux终端中播放的游戏.但是,有一个概念,我不知道如何命名,所以我的搜索空手而归.

像iptraf这样的程序如何在如此低的水平上访问输出,以便它们可以修改每个单元格的背景,前景和字符内容以及捕获所有键盘输入而不是shell?

我假设在某个地方,存在一个可以修改以显示自定义终端窗口内容的2D数组,但我无法命名这个概念,因此我无法搜索它.我描述的是什么概念?

最佳答案 大多数程序,如vim,weechat / irssi,nano,以及任何其他cli程序,都使用一个独立的缓冲区,其中显示的所有内容都写在其中.每当更新发生时(例如,一些字符被覆盖),该缓冲区就被写入stdout.当你输出整个缓冲区时,这会让人觉得你在角色的位置上交换正确的东西.

程序需要在开始在终端上写入它之前保存当前的stdout,这样当程序完成时,那里的初始输出可以返回到终端(它被写回到stdout).

有很多API可以帮到你.最广泛使用的是ncurses.

编辑:哦,它被称为多缓冲(或屏幕缓冲).

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读