端末入出力インタフェースは、非同期通信ポートを制御する一般的な端末インタフェースを処理します。詳細は、termios(3C) と termio(7I) のマニュアルページを参照してください。
表 4–5 端末入出力インタフェース
インタフェース名 |
目的 |
---|---|
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 以外の操作モードにおいて、サーバーがどのようにその呼び出し元の制御端末との関連付けを解除するかを示します。
(void) close(0); (void) close(1); (void) close(2); (void) open("/", O_RDONLY); (void) dup2(0, 1); (void) dup2(0, 2); setsid();
この操作モードでは、サーバーは制御端末のプロセスグループからシグナルを受信しません。サーバーが関連付けを解除した後、サーバーはエラーレポートを端末に送信できません。したがって、このサーバーは syslog(3C) を使用してエラーを記録する必要があります。