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

时间:2014-03-05 17:26:44   收藏:0   阅读:569

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

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

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

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

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

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

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

bubuko.com,布布扣

所有我们可以检测和更改的终端设备特性都包含在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的值如下:

bubuko.com,布布扣

c_iflag的值如下:

bubuko.com,布布扣

bubuko.com,布布扣

c_lflag的值如下:

bubuko.com,布布扣

c_oflag的值如下:

bubuko.com,布布扣

bubuko.com,布布扣


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

bubuko.com,布布扣

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

bubuko.com,布布扣

《UNIX环境高级编程》笔记--终端IO,布布扣,bubuko.com

原文:http://blog.csdn.net/todd911/article/details/20481837

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!