首页 » 信息技术 »

Terminal的字符模式、行模式、屏模式

2019年12月25日 / 1次阅读
计算机

终端Terminal有3种缓冲模式——字符模式、行模式、屏模式

字符模式(character mode)

又要说回到电传打字机TTY,它是基于字符传输滴。也就是说,操作员每次在“电传打字机”上按键,对应的字符会立即通过线路发送给对方。这就是最传统的字符模式,通俗地说,“字符模式”也就是无缓冲的模式。

行模式(line mode)

不客气地说,“字符模式”是非常傻逼滴!因为如果你不小心按错键,这个错误也会立即发送出去(当年电报系统就是这样设计的)。

比如说,你在输入一串很长的命令,结果输到半当中,敲错一个按键,整个命令就废了——要重新再输入一遍。
所以,当早期的程序员对“字符模式”实在忍无可忍之后,终于发明了行模式。

行模式也叫做“行缓冲”。也就是说,终端会把你当前输入的这行先缓冲在本地。只有当你最终按了回车键,才会把这一整行发送出去。如果你不小心敲错了一个字符,可以赶紧用“退格键”删掉重输这个字符。因此,这种模式称之为行缓冲。

早期的标准键盘,没有方向键(“上下左右”这4个键),因为无论是“字符模式”还是“行模式”,都没这个需求。

屏模式(screen mode/block mode)

“行模式”进一步的发展就是屏模式。这个玩意儿也叫“全屏缓冲”,顾名思义,终端会缓冲当前屏幕的内容。在这种模式下,用户可以利用方向键,操纵光标(cursor)在屏幕上四处游走,就是文本模式下的图形界面。

开发这种类型的软件,比较复杂——程序员至少需要做如下工作:
1. 保存整个屏幕的状态
2. 根据键盘输入,操纵光标(cursor)移动
3. 控制屏幕的哪些区域是光标可达,哪些是不可达;
4. 对于光标可达的部分,控制哪些是“可编辑”,哪些是“只读”;
5. 根据“光标移动”以及某些“特定的按键”(比如“翻页键”),重新绘制屏幕
......
后来,为了简化”屏模式“的编程,专门搞了一个叫做 curses 的编程库。如今的“ncurses 库”就是从 curses 衍生出来滴(前面加了一个 n 表示 new)。有了这个屏模式之后,键盘上才开始增加了“方向键”(所以“方向键”位于键盘的扩展区)

本文链接:https://www.maixj.net/ict/char-line-screen-23267

相关文章

留言区


前一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top