编程接口指南

终端 I/O 函数

终端 I/O 接口处理用于控制异步通信端口的通用终端接口,如下表中所示。有关更多信息,请参见 termios(3C)termio(7I) 手册页。

表 5–5 终端 I/O 接口

接口名称 

目的 

tcgetattr(3C), tcsetattr(3C)

获取并设置终端属性 

tcsendbreak(3C), tcdrain(3C), tcflush(3C), tcflow(3C)

执行行控制接口 

cfgetospeed(3C), cfgetispeed(3C)cfsetispeed(3C), cfsetospeed(3C)

获取并设置波特率 

tcsetpgrp(3C)

获取并设置终端前台进程组 ID 

tcgetsid(3C)

获取终端会话 ID 

以下示例说明服务器如何从其处于非 DEBUG 操作模式下的调用方的控制终端分离出来。


示例 5–4 从控制终端分离

   (void) close(0);

   (void) close(1);

   (void) close(2);

   (void) open("/", O_RDONLY);

   (void) dup2(0, 1);

   (void) dup2(0, 2);

   setsid();

此操作模式可防止服务器从控制终端的进程组接收信号。服务器分离之后,便不能将错误报告发送到终端。已分离的服务器必须使用 syslog(3C) 记录错误。