终端 I/O 接口处理用于控制异步通信端口的通用终端接口,如下表中所示。有关更多信息,请参见 termios(3C) 和 termio(7I) 手册页。
表 5–5 终端 I/O 接口
接口名称 |
目的 |
---|---|
获取并设置终端属性 |
|
执行行控制接口 |
|
cfgetospeed(3C), cfgetispeed(3C)cfsetispeed(3C), cfsetospeed(3C) |
获取并设置波特率 |
获取并设置终端前台进程组 ID |
|
获取终端会话 ID |
以下示例说明服务器如何从其处于非 DEBUG 操作模式下的调用方的控制终端分离出来。
(void) close(0); (void) close(1); (void) close(2); (void) open("/", O_RDONLY); (void) dup2(0, 1); (void) dup2(0, 2); setsid();
此操作模式可防止服务器从控制终端的进程组接收信号。服务器分离之后,便不能将错误报告发送到终端。已分离的服务器必须使用 syslog(3C) 记录错误。