linux termios

作者:fly 发布于:2017-1-19 15:21 分类:Linux

termios结构体说明

#define NCCS 32
struct termios
  {
    tcflag_t c_iflag;		/* input mode flags */
    tcflag_t c_oflag;		/* output mode flags */
    tcflag_t c_cflag;		/* control mode flags */
    tcflag_t c_lflag;		/* local mode flags */
    cc_t c_line;			/* line discipline */
    cc_t c_cc[NCCS];		/* control characters */
    speed_t c_ispeed;		/* input speed */
    speed_t c_ospeed;		/* output speed */
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
  };



termios结构体中,该结构体一般包括如下的成员:


tcflag_t c_iflag;


tcflag_t c_oflag;


tcflag_t c_cflag;


tcflag_t c_lflag;


cc_t     c_cc[NCCS];


其具体意义如下


c_iflag:输入模式标志,控制终端输入方式,具体参数如下所示。


c_iflag参数表


键值说明


IGNBRK 忽略BREAK键输入


BRKINT 如果设置了IGNBRK,BREAK键的输入将被忽略,如果设置了BRKINT ,将产生SIGINT中断


IGNPAR 忽略奇偶校验错误


PARMRK 标识奇偶校验错误


INPCK 允许输入奇偶校验


ISTRIP 去除字符的第8个比特


INLCR 将输入的NL(换行)转换成CR(回车)


IGNCR 忽略输入的回车


ICRNL 将输入的回车转化成换行(如果IGNCR未设置的情况下)


IUCLC 将输入的大写字符转换成小写字符(非POSIX)


IXON 允许输入时对XON/XOFF流进行控制


IXANY 输入任何字符将重启停止的输出


IXOFF 允许输入时对XON/XOFF流进行控制


IMAXBEL 当输入队列满的时候开始响铃,Linux在使用该参数而是认为该参数总是已经设置


c_oflag:输出模式标志,控制终端输出方式,具体参数如下所示。


c_oflag参数


键值说明


OPOST 处理后输出


OLCUC 将输入的小写字符转换成大写字符(非POSIX)


ONLCR 将输入的NL(换行)转换成CR(回车)及NL(换行)


OCRNL 将输入的CR(回车)转换成NL(换行)


ONOCR 第一行不输出回车符


ONLRET 不输出回车符


OFILL 发送填充字符以延迟终端输出


OFDEL 以ASCII码的DEL作为填充字符,如果未设置该参数,填充字符将是NUL(‘/0’)(非POSIX)


NLDLY 换行输出延时,可以取NL0(不延迟)或NL1(延迟0.1s)


CRDLY 回车延迟,取值范围为:CR0、CR1、CR2和 CR3


TABDLY 水平制表符输出延迟,取值范围为:TAB0、TAB1、TAB2和TAB3


BSDLY 空格输出延迟,可以取BS0或BS1


VTDLY 垂直制表符输出延迟,可以取VT0或VT1


FFDLY 换页延迟,可以取FF0或FF1


c_cflag:控制模式标志,指定终端硬件控制信息,具体参数如下所示。


c_oflag参数


键值说明


CBAUD 波特率(4+1位)(非POSIX)


CBAUDEX 附加波特率(1位)(非POSIX)


CSIZE 字符长度,取值范围为CS5、CS6、CS7或CS8


CSTOPB 设置两个停止位


CREAD 使用接收器


PARENB 使用奇偶校验


PARODD 对输入使用奇偶校验,对输出使用偶校验


HUPCL 关闭设备时挂起


CLOCAL 忽略调制解调器线路状态


CRTSCTS 使用RTS/CTS流控制


c_lflag:本地模式标志,控制终端编辑功能,具体参数如下所示。


c_lflag参数


键值说明


ISIG 当输入INTR、QUIT、SUSP或DSUSP时,产生相应的信号


ICANON 使用标准输入模式


XCASE 在ICANON和XCASE同时设置的情况下,终端只使用大写。如果只设置了XCASE,则输入字符将被转换为小写字符,除非字符使用了转义字符(非POSIX,且Linux不支持该参数)


ECHO 显示输入字符


ECHOE 如果ICANON同时设置,ERASE将删除输入的字符,WERASE将删除输入的单词


ECHOK 如果ICANON同时设置,KILL将删除当前行


ECHONL 如果ICANON同时设置,即使ECHO没有设置依然显示换行符


ECHOPRT 如果ECHO和ICANON同时设置,将删除打印出的字符(非POSIX)


TOSTOP 向后台输出发送SIGTTOU信号

发表评论:

 
Powered by emlog sitemap