Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       termios,   tcgetattr,   tcsetattr,   tcsendbreak,  tcdrain,  tcflush,  tcflow,  cfmakeraw,
       cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed -  ターミナル属性の取得・設
       定、ライン制御、ボーレートの取得・設定

書式

       #include <termios.h>
       #include <unistd.h>

       int tcgetattr(int fd, struct termios *termios_p);

       int tcsetattr(int fd, int optional_actions,
                     const struct termios *termios_p);

       int tcsendbreak(int fd, int duration);

       int tcdrain(int fd);

       int tcflush(int fd, int queue_selector);

       int tcflow(int fd, int action);

       void cfmakeraw(struct termios *termios_p);

       speed_t cfgetispeed(const struct termios *termios_p);

       speed_t cfgetospeed(const struct termios *termios_p);

       int cfsetispeed(struct termios *termios_p, speed_t speed);

       int cfsetospeed(struct termios *termios_p, speed_t speed);

       int cfsetspeed(struct termios *termios_p, speed_t speed);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       cfsetspeed(), cfmakeraw():
           glibc 2.19 以降:
               _DEFAULT_SOURCE
           glibc 2.19 以前:
               _BSD_SOURCE

説明

       termios 関数群は、非同期通信ポートを制御するための汎用 ターミナルインターフェースである。

   termios 構造体
       ここに示されている関数の多くは、引数に  termios_p を用いる。 この引数は termios 構造体への
       ポインターである。 この構造体には少なくとも以下に示すメンバが含まれる:

           tcflag_t c_iflag;      /* input modes */
           tcflag_t c_oflag;      /* output modes */
           tcflag_t c_cflag;      /* control modes */
           tcflag_t c_lflag;      /* local modes */
           cc_t     c_cc[NCCS];   /* special characters */

       以下に、これらのフィールドに割り当て可能な値について説明する。 最初の  4  つのビットマスク
       フィールドでは、                    関係するフラグの定義のいくつかは、特定の機能検査マクロ
       (feature_test_macros(7)  参照) が定義された場合にのみ公開される。 必要な機能検査マクロは角
       括弧 ("[]") 内に書かれている。

       以下の説明で、  "POSIX にはない" は その値が POSIX.1-2001 で規定されていないことを意味し、
       "XSI" はその値が POSIX.1-2001 の XSI 拡張で 規定されていることを意味する。

       c_iflag フラグには以下の要素を指定できる:

       IGNBRK 入力中の BREAK 信号を無視する。

       BRKINT IGNBRK が設定されている場合は、BREAK 信号は無視される。  IGNBRK  が設定されていない
              が、BRKINT  が設定されている場合は、  BREAK  信号によって入出力キューがフラッシュさ
              れ、 さらに、端末がフォアグラウンドプロセスグループの制御端末の場合は、  フォアグラ
              ウンドプロセスグループに  SIGINT が送られる。 IGNBRKBRKINT も設定されていない場
              合、 BREAK をヌルバイト ('\0') として読み込む。 ただし、PARMRK が設定されている場合
              は \377 \0 \0 のシーケンスとして 読み込む。

       IGNPAR フレームエラーおよびパリティエラーを無視する。

       PARMRK If  this  bit  is  set,  input  bytes with parity or framing errors are marked when
              passed to the program.  This bit is meaningful only when INPCK is set and IGNPAR is
              not  set.  The way erroneous bytes are marked is with two preceding bytes, \377 and
              \0.  Thus, the program actually reads three bytes for one erroneous  byte  received
              from  the  terminal.  If a valid byte has the value \377, and ISTRIP (see below) is
              not set, the program might confuse it with the prefix that marks  a  parity  error.
              Therefore,  a  valid byte \377 is passed to the program as two bytes, \377 \377, in
              this case.

              IGNPARPARMRK も  設定されていない場合、パリティエラーあるいはフレームエラーの発
              生した文字を \0 として読み込む。

       INPCK  入力のパリティチェックを有効にする。

       ISTRIP 8 ビット目を落とす。

       INLCR  入力の NL (New Line: 改行文字) を CR (Carriage Return: 復帰文字) に 置き換える。

       IGNCR  入力の CR を無視する。

       ICRNL  (IGNCR が設定されていない場合) 入力の CR を NL に置き換える。

       IUCLC  (POSIX にはない) 入力の大文字を小文字に置き換える。

       IXON   出力の XON/XOFF フロー制御を有効にする。

       IXANY  (XSI)  任意の文字を入力すると、停止していた出力を再開する (デフォルトでは、START 文
              字でのみ出力が再開される)。

       IXOFF  入力の XON/XOFF フロー制御を有効にする。

       IMAXBEL
              (POSIX にはない) 入力キューが一杯の時にベルを鳴らす。 Linux  ではこのビットは実装さ
              れておらず、 常にセットされているかのように振舞う。

       IUTF8 (Linux 2.6.4 以降)
              (POSIX   にはない)   入力が   UTF8   である;   これにより  cooked  mode  で文字削除
              (character-erase) を 正しく機能させることができる。

       c_oflag フラグには以下の要素を指定できる:

       OPOST  実装に依存した出力処理を有効にする。

       OLCUC  (POSIX にはない) 出力時に小文字を大文字に変換する。

       ONLCR  (XSI) 出力の NL を CR-NL に置き換える。

       OCRNL  出力の CR を NL に置き換える。

       ONOCR  0 桁目で CR を出力しない。

       ONLRET CR を出力しない。

       OFILL  転送時間を遅らせるのではなく、補填文字 (fill character) を送る。 (訳注:特定の文字に
              対して、端末側の処理を待つために転送を一定時間  遅らせることができる。また、  OFILL
              を指定すると 転送を遅らせる代わりに補填文字を送る。)

       OFDEL  補填文字を ASCII DEL にする。 このフラグが設定されていない場合は ASCII  NUL  ('\0')
              になる。 (Linux では実装されていない)

       NLDLY  NL  の遅延を設定する。値は  NL0  (遅延なし)  および  NL1  である。  [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE が必要]

       CRDLY  CR の遅延を設定する。値は CR0 (遅延なし), CR1,  CR2,CR3  である。  [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE が必要]

       TABDLY 水平タブ  (horizontal  tab)  の遅延を設定する。 値は TAB0, TAB1, TAB2, TAB3 (または
              XTABS; ただし「バグ」を参照) である。 [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE
              が必要]  XTAB3 (これは XTABS と同じである) の値はタブをスペース何個に変換するかを示
              す (タブは 8 桁毎に止まる)。

       BSDLY  後退 (backspace) の遅延を設定する。 値は BS0 (遅延なし) あるいは BS1 である。 (実装
              されたことはない) [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE が必要]

       VTDLY  垂直タブ  (vertical  tab)  の遅延を設定する。 値は VT0 (遅延なし) あるいは VT1 であ
              る。

       FFDLY  頁送り (form feed) の遅延を設定する。 値は FF0  (遅延なし)  あるいは  FF1  である。
              [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE が必要]

       c_cflag フラグは以下の通り:

       CBAUD  (POSIX  にはない) ボーレートマスク (4+1 ビット)。 [_BSD_SOURCE_SVID_SOURCE が必
              要]

       CBAUDEX
              (POSIX  にはない)  追加のボーレートマスク  (1  ビット)。   CBAUD   に含まれている。
              [_BSD_SOURCE_SVID_SOURCE が必要]

              (POSIX では、 termios 構造体に格納されたボーレートは正確なものではなく、 ボーレート
              を操作するために cfgetispeed()  と cfsetispeed()  が提供されている。  c_cflag  内の
              CBAUD  で選択されたビットを使うシステムもあれば、 sg_ispeedsg_ospeed といった独
              立したフィールドを使うものもある。)

       CSIZE  文字サイズを設定する。 値は CS5, CS6, CS7, CS8 である。

       CSTOPB ストップビットを 1 ではなく 2 にする。

       CREAD  受信を有効にする。

       PARENB 出力にパリティを付加し、入力のパリティチェックを行う。

       PARODD 設定されると、入力および出力に対するパリティが奇数パリティとなる。   設定されない場
              合、偶数パリティが使用される。

       HUPCL  最後のプロセスがデバイスをクローズした後、モデムの制御線を low にする (切断する)。

       CLOCAL モデムの制御線を無視する。

       LOBLK  (POSIX にはない) 現在のシェル層以外からの出力を抑制する。
               shl (シェル層) で用いられる。(Linux では実装されていない)

       CIBAUD (POSIX  にはない) 入力速度のマスク。 CIBAUD ビットのための値は CBAUD ビットのための
              値と同じであり、  左に   IBSHIFT   ビットシフトしたものである。   [_BSD_SOURCE_SVID_SOURCE が必要] (Linux では実装されていない)

       CMSPAR (POSIX    にはない)    (一部のシリアルデバイスでサポートされている)    「スティック
              (stick)」パリティ (マーク/スペース パリティ)を使用する。 PARODD  が設定された場合パ
              リティビットは常に  1  となり、  設定されない場合は常に  0 となる。 [_BSD_SOURCE_SVID_SOURCE が必要]

       CRTSCTS
              (POSIX にはない) RTS/CTS (ハードウェア)  フロー制御を有効にする。  [_BSD_SOURCE_SVID_SOURCE が必要]

       c_lflag フラグは以下の通り:

       ISIG   INTR, QUIT, SUSP, DSUSP の文字を受信した時、対応するシグナルを 発生させる。

       ICANON カノニカルモードを有効にする (下記参照)。

       XCASE  (POSIX にはない; Linux では対応していない)  ICANON が同時に設定された場合、端末は大
              文字のみが有効である。 入力された文字は \  が付いた文字を除いて小文字に変換される。
              出力時は、大文字の前に   \   が付き、小文字は大文字に変換される。  [_BSD_SOURCE_SVID_SOURCE_XOPEN_SOURCE が必要]

       ECHO   入力された文字をエコーする。

       ECHOE  ICANON も同時に設定された場合、ERASE 文字は前の文字を削除し、 WERASE 文字は前の単語
              を削除する。

       ECHOK  ICANON も同時に設定された場合、KILL 文字は現在の行を削除する。

       ECHONL ICANON も同時に設定された場合、 ECHO が設定されていなくても NL 文字をエコーする。

       ECHOCTL
              (POSIX にはない) ECHO も同時に設定された場合、TAB, NL, START, STOP 以外の端末特殊文
              字が ^X としてエコーされる。 X は特殊文字に ASCII  コードで  0x40  を足した文字であ
              る。例えば文字  0x08  (BS) は ^H とエコーされる。 [_BSD_SOURCE_SVID_SOURCE が必
              要]

       ECHOPRT
              (POSIX にはない) ICANON および ECHO が同時に設定されている場合、 削除された文字も表
              示される。 [_BSD_SOURCE_SVID_SOURCE が必要]

       ECHOKE (POSIX  にはない)  ICANON  も設定された場合、 KILL が行の各文字を消去する代わりにエ
              コーされる。 これは ECHOE および ECHOPRT を指定することと等しい。  [_BSD_SOURCE_SVID_SOURCE が必要]

       DEFECHO
              (POSIX にはない) プロセスが読み込んだときにだけエコーする。 (Linux では実装されてい
              ない)

       FLUSHO (POSIX  にはない;  Linux  では対応していない)    出力をフラッシュする。このフラグは
              DISCARD 文字を入力することで切替えられる。 [_BSD_SOURCE_SVID_SOURCE が必要]

       NOFLSH INT, QUIT, SUSP 文字に対応するシグナルを発生する際の 入力・出力キューのフラッシュを
              無効にする。

       TOSTOP バックグラウンドプロセスのプロセスグループで制御端末へ 文字を出力しようとしているプ
              ロセスに対して SIGTTOU シグナルを送る。

       PENDIN (POSIX  にはない; Linux では対応していない)  次の文字を読み込んだ時、入力キュー中の
              全文字を再表示する。 (bash(1) は入力行をこのように処理している。)  [_BSD_SOURCE_SVID_SOURCE が必要]

       IEXTEN 実装依存の入力処理を有効にする。 このフラグは、特殊文字である EOL2, LNEXT, REPRINT,
              WERASE や、 IUCLC フラグを有効にするために必要である。

       c_cc 配列は端末特殊文字を定義している。 シンボルの一覧 (初期値) と意味は以下の通り。

       VDISCARD
              (POSIX にはない; Linux では対応していない; 017, SI, Ctrl-O)  未送信バッファーの内容
              の破棄/保存を切り替える。  IEXTEN  がセットされている場合に認識し、入力には渡されな
              い。

       VDSUSP (POSIX にはない; Linux では対応していない; 031, EM, Ctrl-Y)  遅延中断文字 (DSUSP)。
              ユーザープログラムから文字が読み込まれた時に  SIGTSTP  シグナルを送る。  IEXTENISIG がセットされていて、システムがジョブ制御に対応している 場合に 認識し、入力には
              渡されない。

       VEOF   (004, EOT, Ctrl-D)  ファイル終端文字 (EOF)。 より正確には、tty バッファーの内容を行
              末を待たずにユーザープログラムに送る。 これが行の最初の文字だった場合、ユーザープロ
              グラムの  read(2) は 0 を 返し、 ファイル終端であることを知らせる。 ICANON がセット
              されている場合に認識し、 入力には渡されない。

       VEOL   (0, NUL)  追加の行末文字 (EOL)。 ICANON がセットされている場合に認識する。

       VEOL2  (POSIX にはない; 0, NUL)  追加の行末文字 (EOL2)。 ICANON がセットされている場合に認
              識する。

       VERASE (0177,  DEL, rubout か 010, BS, Ctrl-H か #)  消去文字 (ERASE)。 これにより、直前の
              未消去文字を消去する。 しかし、EOF や行頭を超えては消去しない。 ICANON がセットされ
              ている場合に認識し、入力には渡されない。

       VINTR  (003,  ETX, Ctrl-C か 0177, DEL, rubout)  割り込み文字 (INTR)。 SIGINT シグナルを送
              る。 ISIG がセットされている場合に認識し、入力には渡されない。

       VKILL  (025, NAK, Ctrl-U か Ctrl-X か @)  完全消去文字 (KILL)。 直前の EOF  か行頭以降の全
              ての入力を消去する。 ICANON がセットされている場合に認識し、入力には渡されない。

       VLNEXT (POSIX  にはない;  026,  SYN  Ctrl-V)   リテラル (LNEXT)。 次の入力文字をエスケープ
              し、特別な意味があっても解釈しない。 IEXTEN  がセットされている場合に認識し、入力に
              は渡されない。

       VMIN   非カノニカル読み込み時の最小文字数 (MIN)。

       VQUIT  (034, FS, Ctrl-\)  終了文字 (QUIT)。 SIGQUIT シグナルを送る。 ISIG がセットされてい
              る場合に認識し、入力には渡されない。

       VREPRINT
              (POSIX   にはない;   022,   DC2,   Ctrl-R)   まだ読み込んでいない文字列を再表示する
              (REPRINT)。 ICANONIEXTEN がセットされている場合に認識し、入力には渡されない。

       VSTART (021,  DC1,  Ctrl-Q)   開始文字 (START)。停止文字で停止した出力を再開する。 IXON が
              セットされている場合に認識し、入力には渡されない。

       VSTATUS
              (POSIX にはない; Linux では対応していない; 状態要求:  024,  DC4,  Ctrl-T)  状態文字
              (STATUS)。端末での状態情報を表示する。 表示される情報には、フォアグラウンドプロセス
              の状態やそのプロセスが消費した CPU 時間の総計が含まれる。  また、フォアグラウンドプ
              ロセスグループにシグナル SIGINFO を送信する (Linux ではサポートされていない)。

       VSTOP  (023, DC3, Ctrl-S)  停止文字 (STOP)。 開始文字が入力されるまで出力を停止する。 IXON
              が設定されている場合に認識し、入力には渡されない。

       VSUSP  (032, SUB, Ctrl-Z)  中断文字 (SUSP)。 SIGTSTP シグナルを送る。 ISIG  がセットされて
              いる場合に認識し、入力には渡されない。

       VSWTCH (POSIX にはない; Linux では対応していない; 0, NUL)  スイッチ文字 (SWTCH)。 System V
              で (シェルのジョブ制御の前にあった) shell  layers  での  シェルの切り替えに用いられ
              る。

       VTIME  非カノニカル読み込み時のタイムアウト時間 (1/10 秒単位) (TIME)。

       VWERASE
              (POSIX にはない; 027, ETB, Ctrl-W)  単語消去 (WERASE)。 ICANONIEXTEN がセットさ
              れている場合に認識し、入力には渡されない。

       対応する c_cc 要素の値を _POSIX_VDISABLE に設定することで、 それぞれの端末制御文字を無効に
       することができる。

       上記のシンボルの示す値は全て異なる。ただし、  VTIME, VMIN はそれぞれ VEOL, VEOF と同じ値で
       ある。 非カノニカルモードでは、特殊文字の意味は タイムアウトの意味に変わる。 VMINVTIME
       の説明については、 下記の非カノニカルモードの説明を参照のこと。

   端末の設定の取得と変更
       tcgetattr()   は fd に関するパラメーターを取得し、termios_p が参照する構 造体 termios に設
       定する。この関数はバックグラウンドプロセスから  呼ばれることもあるが、この場合、端末の属性
       はフォアグラウンドプロセス によって変化することもある。

       tcsetattr()  は端末に関連したパラメーターを設定する (ハードウェアの設定に必要で、ここで 設
       定できないものを除く)。設定には    termios_p    が参照する    termios     構造体を用いる。
       optional_actions には変更が有効となるタイミングを設定する:

       TCSANOW
              ただちに変更が有効となる。

       TCSADRAIN
              fd  への出力がすべて転送された後に変更が有効になる。このオプションは 出力に影響する
              パラメーターを変更する時に使用するべきである。

       TCSAFLUSH
              パラメーターを変更する前に、 fd  への出力がすべて転送され、受信したがまだ読み込んで
              いないすべての 入力が破棄される。

   カノニカルモードと非カノニカルモード
       c_lflagICANON  フラグの設定により、端末がカノニカルモードで動作するかが決定される。
       ICANON がセットされた場合、カノニカルモード  (canonical  mode)  となり、  セットされない場
       合、非カノニカルモード  (noncanonical  mode) となる。 デフォルトでは、 ICANON はセットされ
       る。

       カノニカルモードでは、以下のような動作となる。

       * 入力は行単位に行われる。 行区切り文字が打ち込まれた時点で、入力行が利用可能となる。 行区
         切り文字は  NL,  EOL,  EOL2 および行頭での EOF である。 EOF 以外の場合、 read(2)  が返す
         バッファーに行区切り文字も含められる。

       * 行編集が有効となる (ERASE, KILL が効果を持つ。 IEXTEN フラグが設定された場合は、 WERASE,
         REPRINT,  LNEXT も効果を持つ)。 read(2)  は最大でも 1行の入力しか返さない。 read(2) が要
         求したバイト数が現在の入力行のバイト数よりも少ない場合、  要求したのと同じバイト数だけが
         読み込まれ、 残りの文字は次回の read(2) で読み込まれる。

       * The  maximum  line  length  is 4096 chars (including the terminating newline character);
         lines longer than 4096 chars are truncated.  After  4095  characters,  input  processing
         (e.g., ISIG and ECHO* processing) continues, but any input data after 4095 characters up
         to (but not including) any terminating newline is  discarded.   This  ensures  that  the
         terminal can always receive more input until at least one line can be read.

       In  noncanonical  mode  input  is available immediately (without the user having to type a
       line-delimiter character), no input processing is performed, and line editing is disabled.
       The  read  buffer  will  only  accept  4095 chars; this provides the necessary space for a
       newline char if the input mode is switched to canonical.  The settings of MIN (c_cc[VMIN])
       and  TIME  (c_cc[VTIME])   determine the circumstances in which a read(2) completes; there
       are four distinct cases:

       MIN == 0, TIME == 0 (ポーリングリード)
              データが利用可能であれば、 read(2) はすぐに返る。このときの返り値は、そのとき利用可
              能なバイト数か  read(2) の要求バイト数のうち小さい方となる。 利用可能なデータがない
              場合 read(2) は 0 を返す。

       MIN > 0, TIME == 0 (ブロッキングリード)
              read(2)  は、利用可能なデータが MIN  バイトに達するまで停止する。返り値は最大でも要
              求バイト数である。

       MIN == 0, TIME > 0 (タイムアウト付きの読み込み)
              TIME  はタイマーの上限を規定し、単位は 1/10 秒である。 タイマーは read(2)  が呼ばれ
              た時点で開始される。 read(2) が返るのは、少なくとも 1バイトのデータが利用可能となっ
              た時点、  またはタイマーが時間切れとなった時点である。 入力が全くなくタイマーが時間
              切れとなった場合、 read(2)  は 0  を返す。  read(2)  の呼び出し時にすでに利用可能な
              データがある場合、 その呼び出しは呼び出し直後にそのデータが到着したかのように振る舞
              う。

       MIN > 0, TIME > 0 (バイト間のタイムアウト付きの読み出し)
              TIME はタイマーの上限を規定し、単位は 1/10 秒である。  入力の最初のバイトが利用可能
              になった後は、  新たに 1バイト受信する度にタイマーがリセットされる。 read(2) は以下
              の条件のいずれかを満たした場合に返る。

              *  MIN バイトのデータを受信した。

              *  バイト間タイマーが時間切れになった。

              *  read(2) で要求されたバイト数のデータを受信した (POSIX ではこの終了条件は規定され
                 ておらず、 他のいくつかの実装では read(2) はこの条件では返らない)。

              タイマーは最初のバイトが利用可能になった時点で開始されるので、  少なくとも 1 バイト
              は読み出される。 read() の呼び出し時にすでに利用可能なデータがある場合、 その呼び出
              しは呼び出し直後にそのデータが到着したかのように振る舞う。

       POSIX  では、 O_NONBLOCK ファイル状態フラグが MIN や TIME の設定よりも優先されるかは規定さ
       れていない。 O_NONBLOCK が設定された場合、 非カノニカルモードの read(2) は MIN や TIME  の
       設定に関わらずすぐに返る。  また、利用可能なデータがない場合、  POSIX では、は非カノニカル
       モードの read(2) が 0 を返す方法も、 errnoEAGAIN を設定して -1  を返すことも認められて
       いる。

   Raw mode
       cfmakeraw()  は、端末を昔の Version 7 端末ドライバの "raw" モードのように設定する。 入力は
       文字単位に可能であり、エコーが無効となり、  端末の入出力文字に対する特殊処理はすべて無効と
       なる。 端末の属性は以下のように設定される:

           termios_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP
                           | INLCR | IGNCR | ICRNL | IXON);
           termios_p->c_oflag &= ~OPOST;
           termios_p->c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
           termios_p->c_cflag &= ~(CSIZE | PARENB);
           termios_p->c_cflag |= CS8;

   ライン制御
       tcsendbreak()   は端末が非同期のシリアルデータ転送を用いている場合に、 連続した0のビット列
       を一定間隔で転送する。 duration が 0 の場合は、0 のビットを 0.25 秒以上、 0.5 秒以下の間隔
       で転送する。 duration が 0 でない場合は、 0 のビットを実装依存の時間間隔で送る。

       端末が非同期のシリアルデータ転送モードでない場合、 tcsendbreak()  は何も行わずに戻る。

       tcdrain()  は fd が行っている出力の転送が完了するまで待つ。

       tcflush()  は fd が行っているデータの出力でまだ転送されていないもの、あるいは受信し たがま
       だ入力していないものを破棄する。いずれを行うかは queue_selector の値で定める:

       TCIFLUSH
              受信したが読んでいないデータをフラッシュする。

       TCOFLUSH
              書いたが送信していないデータをフラッシュする。

       TCIOFLUSH
              受信したが読んでいないデータ・書いたが送信していないデータ両方 をフラッシュする。

       tcflow()  は  fd  で指定されたオブジェクトにおけるデータの送信あるいは受信を一時的に中断す
       る。 送信と受信のどちらかは、 actionで決まる:

       TCOOFF 出力の中断。

       TCOON  中断した出力の再開。

       TCIOFF STOP 文字の送信。 STOP 文字は端末デバイスからシステムへのデータ送信を停止する。

       TCION  START 文字の送信。 START 文字は端末デバイスからシステムへのデータ送信を開始する。

       端末ファイルがオープンされたときのデフォルトでは、 入力も出力も中断されていない。

   ライン速度
       ボーレート関数は  termios 構造体中の入出力ボーレートを 取得、設定するために提供される。 設
       定された値は tcsetattr() の呼び出しが成功するまでは有効ではない。

       速度を B0 に設定した場合、モデムは停止 (hang up) する。 B38400  に該当する実際のビットレー
       トは setserial(8)  で 変更できる。

       入力および出力ボーレートは termios 構造体に格納される。

       cfgetospeed()  は termios_p が示している termios 構造体に格納されている 出力ボーレートを返
       す。

       cfsetospeed()  は termios_p で示されている termios 構造体中の出力ボーレートを speed に設定
       する。値は以下のいずれかでなければならない:

            B0
            B50
            B75
            B110
            B134
            B150
            B200
            B300
            B600
            B1200
            B1800
            B2400
            B4800
            B9600
            B19200
            B38400
            B57600
            B115200
            B230400

       0ボー (B0) は接続の中断に用いられる。 B0が指定された場合、モデムの制御線は使用されない状態
       になり、一般にはこれで  接続が切断される。  CBAUDEX  はPOSIX.1で定義されている速度の範囲外
       (57600 およびそれ以上)  を設定する。すなわち例えば B57600 & CBAUDEX は 0 でない。

       cfgetispeed()  は termios 構造体中の入力ボーレートを返す。

       cfsetispeed()  は termios 構造体中の入力ボーレートを speed に設定する。 speed には、上述の
       cfsetospeed()  のボーレート定数 Bnnn のいずれか一つを指定しなければならない。 入力ボーレー
       トが 0 に設定された場合、入力ボーレートは出力ボーレート と同じ値となる。

       cfsetspeed()   は 4.4BSD による拡張である。この関数は cfsetispeed() と同じ引数をとり、入出
       力両方の速度を設定する。

返り値

       cfgetispeed()  は termios 構造体中の入力ボーレートを返す。

       cfgetospeed()  は termios 構造体中の出力ボーレートを返す。

       他のすべての関数の戻り値:

       0      実行成功。

       -1     実行失敗。 errno がエラーの種類を示す。

       tcsetattr()  は なんらかの 変更要求が成功した場合に成功を返すことに注意。 従って、複数の変
       更を行った場合には、引き続いて tcgetattr()  を呼び出して全ての変更が実行されているかを確認
       する必要があるかもしれない。

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────────────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├─────────────────────────────────────┼───────────────┼─────────┤
       │tcgetattr(), tcsetattr(), tcdrain(), │ Thread safety │ MT-Safe │
       │tcflush(), tcflow(), tcsendbreak(),  │               │         │
       │cfmakeraw(), cfgetispeed(),          │               │         │
       │cfgetospeed(), cfsetispeed(),        │               │         │
       │cfsetospeed(), cfsetspeed()          │               │         │
       └─────────────────────────────────────┴───────────────┴─────────┘

準拠

       tcgetattr(), tcsetattr(), tcsendbreak(), tcdrain(),  tcflush(),  tcflow(),  cfgetispeed(),
       cfgetospeed(), cfsetispeed(), cfsetospeed()  は POSIX.1-2001 で規定されている。

       cfmakeraw()  と cfsetspeed()  は非標準だが、BSD では利用可能である。

注意

       UNIX V7  とその後のいくつかのシステムでは、ボーレートの 14 個のリストである B0, ..., B9600
       の後ろに EXTA, EXTB ("External A" と "External B") の 2 つを 追加している。 多くのシステム
       ではさらに高速なボーレートのためにリストを拡張している。

       tcsendbreak()  で duration に 0 以外を指定した場合の効果は様々である。 SunOS は duration*N
       秒のブレークを規定している。ここで N は 0.25 以上 0.5 未満である。 Linux, AIX,  DU,  Tru64
       は  duration ミリ秒のブレークを送信する。 FreeBSD, NetBSD, HP-UX, MacOS は duration の値を
       無視する。 Solaris と UnixWare では、非ゼロの duration を指定した tcsendbreak()   の振る舞
       いは tcdrain()  と同様である。

バグ

       On  the  Alpha architecture before Linux 4.16 (and glibc before 2.28), the XTABS value was
       different from TAB3 and it was ignored by the N_TTY line discipline code of  the  terminal
       driver as a result (because as it wasn't part of the TABDLY mask).

関連項目

       reset(1),  setterm(1),  stty(1), tput(1), tset(1), tty(1), ioctl_console(2), ioctl_tty(2),
       setserial(8)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。