【文件属性】:
文件名称:终端选择标志-鸿鹄论坛_华为认证h35-211-hcnp-access network题库
文件大小:18.16MB
文件格式:PDF
更新时间:2024-07-29 08:58:58
UNIX 环境高级编程 linux
11.4 获得和设置终端属性
使用函数 t c g e t a t t r和t c s e t a t t r可以获得或设置 t e r m i o s。这样也就可以检测和修改各种终端选
择标志和特殊字符,以使终端按我们所希望的方式进行操作。
#include
int tcgetattr(int f i l e d e s, struct termios *t e r m p t r) ;
int tcsetattr(int f i l e d e s, int o p t, const struct termios *t e r m p t r) ;
两个函数返回:若成功则为 0,若出错则为- 1
这两个函数都有一个指向 t e r m i o s结构的指针作为其参数,它们返回当前终端的属性,或者设置
该终端的属性。因为这两个函数只对终端设备进行操作,所以若 f i l e d e s并不引用一个终端设备
则出错返回,e r r n o设置为E N O T T Y。
t c s e t a t t r的参数o p t使我们可以指定在什么时候新的终端属性才起作用。 o p t可以指定为下列
常数中的一个:
• TCSANOW 更改立即发生。
• TCSADRAIN 发送了所有输出后更改才发生。若更改输出参数则应使用此选择项。
• TCSAFLUSH 发送了所有输出后更改才发生。更进一步,在更改发生时未读的所有输入
数据都被删除(刷清)。
t c s e t a t t r函数的返回值易于产生混淆。如果它执行了任意一种所要求的动作,即使未能执
行所有要求的动作,它也返回 0(表示成功)。如果该函数返回 0,则我们有责任检查该函数是
否执行了所有要求的动作。这就意味着,在调用 t c s e t a t t r设置所希望的属性后,需调用 t c g e t a t t r,
然后将实际终端属性与所希望的属性相比较,以检测两者是否有区别。
11.5 终端选择标志
本节对表11 - 7中列出的各个终端选择标志按字母顺序作进一步说明,也指出该选择项出现在
四个终端标志字段中的哪一个,以及该选择项是否是P O S I X . 1定义的,或是受到S V R 4或4 . 3 + B S D
支持的。
所有列出的选择标志(除屏蔽标志外)都用一或多位表示,而屏蔽标志则定义多位。屏蔽
2 5 4 U N I X环境高级编程
下载