《UNIX环境高级编程》笔记--终端IO

终端IO有两种不同的工作模式:

1.规范模式输入处理。在这种模式中,终端输入以行为单位进行处理。对于每个读要求,终端驱动程序最多返回一行。

例如,若shell把标准输入重定向到终端,

2.非规范模式输入处理。输入字符并不组成行。

终端设备是由一般位于内核中的终端驱动程序控制的。每个终端设备有一个输入队列和一个输出队列。

大多数UNIX系统在一个称为终端行规程(terminal line discipline)的模块中进行规范处理。它位于内核通用读、写函数

和实际设备驱动程序之间的模块。


所有我们可以检测和更改的终端设备特性都包含在termios结构中,该结构定义在头文件<termios>h>中。

struct termios{

tcflag_t c_iflag; //input flags

tcflag_t c_oflags; //output flags

tcflag_t c_cflags; //control flags

tcflag_t c_lflags; //local flags

cc_t c_cc[NCCS]; //control characters

};

输入标志由终端设备驱动程序用来控制字符的输入。

输出标志则控制驱动程序的输出。

控制标志影响到RS-232串行线。

本地标志影响驱动程序和用户之间的接口。

c_cc数组包含了所有可以更改的特殊字符。会在以后的特殊输入字符章节进行说明。


c_cflag的值如下:


c_iflag的值如下:



c_lflag的值如下:


c_oflag的值如下:




如何才能检测和更改终端设备的这些特性呢。下表列出了SUS所定义的对终端设备进行操作的各个函数。


这几个函数之间的关系如下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值