プログラミングインタフェース

端末入出力インタフェース

次の表に示すように、端末入出力インタフェースは、非同期通信ポートを制御する一般的な端末インタフェースを処理します。詳細は、termios(3C) および termio(7I) のマニュアルページを参照してください。

表 6–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 以外の操作モードにおいて、サーバーがどのようにその呼び出し元の制御端末との関連付けを解除するかを示します。


例 6–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) を使用してエラーを記録する必要があります。