艰难的终端控制:Linux 终端编程深度解析
1. 终端接口概述
终端接口,即 tty 接口,其起源可追溯到用户通过连接打印机的高级打字机与计算机交互的时代。它基于一种硬件模型,假定键盘和打印机通过串口连接到远程计算机系统,这与当前的客户端 - 服务器计算架构有一定关联。
这个硬件模型虽然复杂,但具有很强的通用性。几乎所有程序与输入输出设备(如打印机、控制台、xterm 或网络登录)交互的场景,都可以看作是该通用模型的子集。这为程序员提供了一致的编程接口,简化了开发任务。
终端接口之所以复杂,主要有两个原因。一方面,它需要管理用户与系统、程序与系统、设备与系统之间的交互,并且要处理来自各种输入设备(键盘、鼠标、操纵杆等)的输入和向各种输出设备(调制解调器、打印机、显卡等)的输出。另一方面,由于终端具有交互性,用户希望能够根据自己的习惯和偏好控制交互过程,这使得接口的规模和功能不断增加,从而变得更加复杂。
2. 控制终端
POSIX.1 定义了一个标准接口 termios 用于查询和操作终端,该接口在系统头文件 <termios.h> 中定义。termios 数据结构包含了终端的完整特征描述,相关函数可用于查询和更改这些特征。
#include <termios.h>
struct termios {
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tc
超级会员免费看
订阅专栏 解锁全文
1635

被折叠的 条评论
为什么被折叠?



