终端选择标志-数据流图到模块结构图的直接转换方法

时间:2024-07-12 01:23:49
【文件属性】:

文件名称:终端选择标志-数据流图到模块结构图的直接转换方法

文件大小:5.82MB

文件格式:PDF

更新时间:2024-07-12 01:23:49

APUE UNIX

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环境高级编程


网友评论