通用终端接口详解
1. 接口概述
通用终端接口应得到支持,若实现提供了异步通信端口,该接口会在这些端口上生效。不过,是否支持网络连接、同步端口或两者皆支持,则由具体实现来决定。
2. 接口特性
2.1 打开终端设备文件
当打开终端设备文件时,通常线程会等待,直至建立连接。实际上,应用程序很少直接打开这些文件,一般由特殊程序打开,之后成为应用的标准输入、输出和错误文件。应用程序打开终端设备的情况如下:
1. 打开 /dev/tty 或 ctermid() 返回的路径名,以获取控制终端的文件描述符。
2. 打开伪终端的辅助端,可参考 XSH ptsname() 。
3. 打开通过串行线路连接的调制解调器或类似设备。在此情况下,终端参数在设备被任何进程最后一次关闭到下一次打开期间,可能由实现初始化为默认设置,也可能从上一次使用延续下来。若要让终端以符合规范的方式运行,在打开未被任何进程打开的终端设备时,可使用 O_TTY_INIT 打开标志,或者执行 stty 实用程序并使用 sane 操作数。
若 O_NONBLOCK 标志未设置,打开终端设备文件会使线程阻塞,直到终端设备准备好且可用。若未设置 CLOCAL 模式,这意味着要阻塞到建立连接。若终端设置了 CLOCAL 模式,或者在 open() 中指定了
超级会员免费看
订阅专栏 解锁全文
427

被折叠的 条评论
为什么被折叠?



