分类: LINUX
2012-04-18 21:57:12
为了便于通过程序来获得和修改终端参数,Linux提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。 表1 tcgetattr函数和tcsetattr函数
说明:tcgetattr函数用于获取与终端相关的参数。参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如下的成员: tcflag_t c_iflag;
其具体意义如下。 c_oflag:输出模式标志,控制终端输出方式。 c_cflag:控制模式标志,指定终端硬件控制信息。 c_lflag:本地模式标志,控制终端编辑功能。 c_cc[NCCS]:控制字符,用于保存终端驱动程序中的特殊字符,如输入结束符等。 |
tcsetattr函数用于设置终端的相关参数。参数fd为打开的终端文件描述符,参数optional_actions用于控制修改起作用的时间,而结构体termios_p中保存了要修改的参数。
optional_actions可以取如下的值。
TCSANOW:不等数据传输完毕就立即改变属性。
TCSADRAIN:等待所有数据传输结束才改变属性。
TCSAFLUSH:清空输入输出缓冲区才改变属性。
错误信息:
EBADF:非法的文件描述符。
EINTR:tcsetattr函数调用被信号中断。
EINVAL:参数optional_actions使用了非法值,或参数termios中使用了非法值。
ENCTTY:非终端的文件描述符。