# 8.8 `termios` -- POSIX スタイルの端末制御

利用可能な条件: Unix.

このモジュールでは端末 I/O 制御のための POSIX 準拠の関数呼び出し インタフェースを提供します。これら呼び出しのための完全な記述については、 POSIX または Unix マニュアルページを参照してください。 POSIX termios 形式の端末制御をサポートする Unix の バージョンで (かつインストール時に指定した場合に) のみ利用可能です。

このモジュールの関数は全て、ファイル記述子 fd を最初の引数 としてとります。この値は、`sys.stdin.fileno()` が返すような 整数のファイル記述子でも、`sys.stdin` 自体のようなファイル オブジェクトでもかまいません。

このモジュールではまた、モジュールで提供されている関数を使う上で 必要となる全ての定数を定義しています; これらの定数は C の対応 する関数と同じ名前を持っています。これらの端末制御インタフェース を利用する上でのさらなる情報については、あなたのシステムの ドキュメンテーションを参考にしてください。

このモジュールでは以下の関数を定義しています:

`tcgetattr`( | fd)

  ファイル記述子 fd の端末属性を含むリストを返します。その形式は: `[`iflag, oflag, cflag, lflag, ispeed, ospeed, cc`]` です。cc は端末特殊文字のリストです (それぞれ長さ 1 の文字列です。ただしインデクス `VMIN` および `VTIME` の内容は、それらのフィールドが定義されていた場合整数 の値となります)。

  端末設定フラグおよび端末速度の解釈、および配列 cc のインデクス 検索は、`termios` で定義されているシンボル定数を使って行わなければ なりません。

`tcsetattr`( | fd, when, attributes)

  ファイル記述子 fd の端末属性を attributes から取り出して 設定します。attributes は `tcgetattr()` が返すような リストです。引数 when は属性がいつ変更されるかを決定します: `TCSANOW` は即時変更を行い、`TCSAFLUSH` は現在 キューされている出力を全て転送し、全てのキューされている入力を無視 した後に変更を行います。

`tcsendbreak`( | fd, duration)

  ファイル記述子 fd にブレークを送信します。duration をゼロ にすると、 0.25-0.5 秒間のブレークを送信します; duration の値が ゼロでない場合、その意味はシステム依存です。

`tcdrain`( | fd)

  ファイル記述子 fd に書き込まれた全ての出力が転送されるまで 待ちます。

`tcflush`( | fd, queue)

  ファイル記述子 fd にキューされたデータを無視します。 どのキューかはqueue セレクタで指定します: `TCIFLUSH` は入力キュー、 `TCOFLUSH` は出力キュー、`TCIOFLUSH` は両方のキューです。

`tcflow`( | fd, action)

  ファイル記述子 fd の入力または出力をサスペンドしたりレジューム したりします。引数 action は出力をサスペンドする `TCOOFF`、 出力をレジュームする `TCOON` 、入力をサスペンドする `TCIOFF` 、入力をレジュームする `TCION` をとることが できます。

参考資料:

`tty`モジュール:
  一般的な端末制御操作のための便利な関数。.