FreeBSD 日本語マニュアル検索 (jman/japropos/jwhatis)


日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。

4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)

13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。



検索コマンド: man apropos whatis
コマンド/キーワード:
日本語マニュアル RELEASE :
セクション:
Table of Contents
名称 | 書式 | 解説 | 一般的な端末インタフェース | 関連項目
TERMIOS(4)         FreeBSD カーネルインタフェースマニュアル         TERMIOS(4)

名称
     termios -- 一般的な端末の回線制御規則 (line discipline)

書式
     #include <termios.h>

解説
     これは tty 非同期通信ポート上でサポートされる一般的な端末の回線制御規則
     (line discipline) について説明しています。

   端末デバイスファイルのオープン
     端末ファイルがオープンされるとき、通常接続が確立されるまで、プロセスは待
     ちます。ほとんどのハードウェアでは、接続の存在はハードウェアの CARRIER ラ
     インのアサーション (表明) によって示されます。端末のファイルに関連してい
     る termios 構造体が cflag に CLOCAL フラグセットがあるかまたは、open(2)
     呼び出しで O_NONBLOCK フラグが設定されているなら、オープンは現在接続がな
     くても成功します。実際には、アプリケーションはめったにこれらのファイルを
     オープンしません。それらは、getty(8)rlogind(8) のような特別のプログラ
     ムでオープンされ、アプリケーションの標準入力、標準出力と標準エラーファイ
     ルになります。

   nutshell のジョブ制御
     あらゆるプロセスは特定のプロセスグループとセッションに関連しています。グ
     ループ分けは階層的です: 特定のプロセスグループのすべてのメンバは同じセッ
     ションのメンバです。この構造は、ジョブ制御の目的のために関連するプロセス
     のグループを管理する際に使用されます。すなわち、同時に複雑なコマンド (2
     つ以上の関連するプロセスからなるコマンド) を停止するか、または再開するた
     めのキーボード (またはプログラムの制御) の能力です。プロセスグループへの
     グループ分けすることによって、プロセスグループが単一の制御端末にアクセス
     することを調整するともに、全体としてグループを停止するか、または開始する
     シグナルを配信できます。セッションへの高い層でのグループ分けはジョブ制御
     に関連するシグナルとシステムコールを ``ログイン'' の特定のインスタンスか
     ら生じるプロセスに制限することです。一般的に、ユーザがログインするときに
     セッションは作成され、ログイン端末は制御端末となるようにセットアップされ
     ます。そのログインシェルから生じたすべてのプロセスは、同じセッションであ
     り、制御端末を継承します。

     インタラクティブに動作するジョブ制御シェル (すなわち、端末からコマンドを
     読み込む) は、それらを同じプロセスグループに置くことによって、関連するプ
     ロセスを一緒にします。同じプロセスグループ中の 1 組のプロセスは ``ジョ
     ブ'' としてまとめて参照されます。端末のフォアグランドプロセスグループが特
     定のジョブのプロセスグループと同じであるときに、そのジョブは ``フォアグラ
     ンド'' になっていると言われます。端末のプロセスグループがジョブのプロセス
     グループと異なっているとき (しかし、それでも制御端末である)、そのジョブは
     ``バックグラウンド'' になっていると言われます。通常、シェルはコマンドを読
     み込んで、そのコマンドを実装するジョブを始めます。コマンドが (標準的な)
     フォアグランドで開始されるなら、端末のプロセスグループを開始されたジョブ
     のプロセスグループに設定し、ジョブが完了するのを待って、端末のプロセスグ
     ループをそれ自体のプロセスグループに戻します (それはフォアグランドに置か
     れます)。ジョブがバックグラウンドで開始されるなら (シェル演算子 "&" に
     よって指示されるように)、端末のプロセスグループを決して変更せず、ジョブが
     完了するのを待ちません (すなわち、すぐに次のコマンドを読み込もうと試みま
     す)。ジョブがフォアグランドで開始されるなら、ユーザは全体のジョブを停止す
     るという効果を持っている、端末の停止シグナル (SIGTSTP) を発生させる、キー
     (通常 `^Z') をタイプするかもしれません。シェルはジョブが停止したことに気
     付いて、フォアグランドにシェル自体を置いた後に実行を再開します。シェルに
     はまた、バックグラウンドで停止したジョブおよび、停止したまたはバックグラ
     ウンドに置かれたジョブをフォアグランドに置くコマンドがあります。

   親のないプロセスグループ
     親のないプロセスグループは、親がまだ同じセッションにいて異なったプロセス
     グループにはいますが、その親のプロセスがないプロセスグループです。概念的
     に、それが停止されることになっているなら何もできる親のないプロセスグルー
     プを意味します。例えば、初期のログインシェルは一般的に親のないプロセスグ
     ループです。親のないプロセスグループはキーボードで生成された停止シグナル
     と制御端末への読み込みまたは書き込みに由来するジョブ制御を免除されていま
     す。

   制御端末
     端末は制御端末としてプロセスに属します。制御端末を持っているセッションの
     各プロセスは、同じ制御端末になります。端末は高々 1 つのセッションのための
     制御端末となります。セッションのための制御端末は、TIOCSCTTY ioctl を発行
     することによって、セッションリーダによって割り付けられます。制御端末は端
     末デバイスファイルを単にオープンすることによって、決して獲得されません。
     制御端末がセッションに関連するようになるとき、フォアグランドプロセスグ
     ループはセッションリーダのプロセスグループに設定されます。

     制御端末は fork(2) 関数呼び出しの間に、子プロセスによって継承されます。プ
     ロセスは setsid(2) 関数で新しいセッションを作成するとき、制御端末を放棄し
     ます。他のプロセスは、それらの制御端末がそれを持ち続けるようにこの端末を
     持っていた古いセッションに残っています。プロセスは、他のプロセスが、それ
     をオープンし続けるなら、制御端末に関連しているファイル記述子のすべてをク
     ローズすることによって、単に制御端末を放棄しません。

     制御プロセスが終了するとき、制御端末は新しいセッションリーダによって獲得
     できる、現在のセッションから分離されます。以前のセッションで他のプロセス
     による端末へのその後のアクセスは、まるでモデムの切断が気付かれたかのよう
     に扱われた端末にアクセスする試みによって、拒絶されます。

   端末アクセス制御
     プロセスが制御端末のフォアグランドプロセスグループになっているなら、読み
     込み操作は許されます。制御端末から読み込まれるバックグラウンドプロセスで
     プロセスによるどんな試みも次の特別なケースの 1 つが適用されないなら、
     SIGTTIN シグナルをプロセスグループへ送る原因となります: 読み込みプロセス
     が SIGTTIN シグナルを無視するかブロックされるなら、または読み込みプロセス
     のプロセスグループが親のないプロセスであるなら、read(2) は -1 を返し、
     errno に EIO を設定し、シグナルは送られません。SIGTTIN シグナルのデフォル
     ト動作はそれに送られるプロセスを停止することです。

     プロセスが制御端末のフォアグランドプロセスグループになっているなら、書き
     込み操作は許されます。制御端末へ書き込まれるバックグラウンドプロセスでプ
     ロセスによる試みは次の特別なケースの 1 つが適用されないなら、SIGTTOU シグ
     ナルをプロセスグループへ送る原因となります: TOSTOP が設定されないか、
     TOSTOP が設定されプロセスが SIGTTOU シグナルを無視するかブロックされるな
     ら、プロセスは端末への書き込みを許し、SIGTTOU シグナルは送られません。
     TOSTOP が設定され、書き込みプロセスのプロセスグループが親のないプロセスで
     あるなら、そして書き込みプロセスが SIGTTOU を無視しないかブロックされるな
     ら、write(2) は -1 を返し、errno に EIO を設定し、シグナルは送られませ
     ん。

     端末パラメータを設定する特定の呼び出しは TOSTOP が無視されることを除い
     て、書き込みと同じやりかたで取り扱われます。すなわち、TOSTOP が設定される
     とき、端末への書き込みの効果は同じです。

   入力処理とデータの読み込み
     端末デバイスファイルに関連している端末デバイスは全二重モードで動作するの
     で、データは出力が生じている間でも到着するかもしれません。各端末デバイス
     ファイルは、着信データはプロセスによって読み込まれる前にシステムに格納さ
     れる、入力キューに関連づけられます。システムは入力キューに格納されバイト
     数に制限 {MAX_INPUT} をつけています。この制限を超えるとき、システムの振る
     舞いは termios の c_iflag の IMAXBEL フラグの設定に依存しています。このフ
     ラグが設定されるなら、端末は入力キューが満杯である間、文字が付け取られる
     たびに ASCII BEL 文字を送ります。そうでなければ、文字を受け取られるとき、
     入力キューはフラッシュされます。

     一般的な 2 種類の入力処理が、端末デバイスファイルがカノニカル (canonical)
     モードか非カノニカル (noncanonical) モードであるかによって決定され、利用
     可能です。さらに、入力文字は c_iflagc_lflag フィールドに従って処理さ
     れます。そのような処理は、一般的に、それらが端末から受け取られるられると
     き、端末へすぐに転送された入力文字を戻すことを意味する、エコー機能を含む
     ことができます。これは全二重モードで動作することができる端末で役に立ちま
     す。

     データが端末デバイスファイルから読み込むプロセスに提供されている方法は、
     端末デバイスファイルがカノニカルモードか非カノニカルモードであるかに依存
     しています。

     他に O_NONBLOCK フラグが open(2)fcntl(2) によって設定されるかどうかに
     依存しています。O_NONBLOCK フラグがクリアされているなら、データが利用可能
     になるかシグナルが受け取られるまで、読み込み要求はブロックされます。
     O_NONBLOCK フラグが設定されているなら、読み込み要求は次の 3 のうちの 1 つ
     でブロックすることなしに完了します:

           1.   全体の要求を満たすために利用可能な十分なデータがある、そして読
                み込みが成功して完了するなら、読み込んだバイト数を返します。

           2.   全体の要求を満たすために利用可能な十分なデータがない、そしてで
                きるだけ多くのデータを読み込んで、読み込みが成功して完了するな
                ら、読み込んだバイト数を返します。

           3.   利用可能なデータがななら、読み込みは errno に EAGAIN を設定し
                て -1 で返ります。

     データがいつ利用可能であるかは入力処理モードがカノニカルか非カノニカルで
     あるかに依存します。

   カノニカル (canonical) モード入力処理
     カノニカルモードの入力処理では、端末の入力は行単位に処理されます。行は改
     行 `\n' 文字、ファイルの終り (EOF) 文字、または行末 (EOL) 文字によって区
     切られます。EOF と EOL の詳しい情報については、特殊文字セクションを参照し
     てください。これは、読み込み要求が全体の行をタイプしたか、またはシグナル
     を受け取るまで、返らないことを意味します。また、read 呼び出しでどんなに多
     くのバイトが要求されても、高々 1 行が返されます。しかしながら、一度にすべ
     ての行を読み込む必要はありません。いくつのバイト (1 つ) でも情報を失うこ
     となしに読み込みの要求ができます。

     {MAX_CANON} は 1 行のバイト数の制限です。この制限を超えるとき、システムの
     振る舞いは入力キューの制限 {MAX_INPUT}, が越えるときと同じです。

     2 つの特殊文字 ERASE と KILL 文字 (特殊文字セクション参照) のいずれかを受
     け取られるとき、erase (最後の文字前削除) と kill (すべての文字削除) 処理
     は起こります。この処理は、改行 NL, EOF または EOL 文字によってまだ区切ら
     れていない入力キューのデータに影響します。この区切られていないデータは現
     在行を整えます。ERASE 文字は現在行の最後の文字があればそれを削除します。
     KILL 文字は現在行があればそのすべてのデータを削除します。ERASE と KILL 文
     字は現在行にデータがなければ効果はありません。ERASE と KILL 文字自体は入
     力キューに置かれません。

   非カノニカル (noncanonical) モード入力処理
     非カノニカルモードの入力処理では、入力バイトは行にまとめられません、そし
     て erase と kill 処理は起こりません。c_cc 配列の VMIN と VTIME メンバの値
     は受け取られたバイトをどのように処理するかを決定するために使用されます。

     MIN は read(2) 関数が成功して返るときに受け取られるべきである最小のバイト
     数を表します。TIME はタイムアウトが生じ短期間のデータ送信に使用される 0.1
     秒の精度のタイマです。MIN が { MAX_INPUT}, より大きいなら、要求への応答は
     不定です。MIN と TIME のための 4 つのあり得る値とそれらの相互作用は次に説
     明されます。

   ケース A: MIN > 0, TIME > 0
     この場合、TIME はバイト間のタイマとして役立ち、最初のバイトが受け取られた
     後にアクティブにされます。バイト間のタイマであるので、1 バイトが受け取ら
     れた後に、それはリセットされます。MIN と TIME との間の相互作用は次の通り
     です: 1 バイトが受け取られるとすぐに、バイト間のタイマは始動されます。バ
     イト間のタイマの期限が切れる前に (タイマが各バイトを受け取られるときにリ
     セットされるのを思い出してください) MIN バイトが受け取られなら、読み込み
     は充足されます。MIN バイトが受け取られる前にタイマの期限が切れるなら、そ
     の時点で受け取られた文字をユーザに返します。TIME が期限が切れるなら、1 バ
     イトを受け取られない場合、タイマが有効にされていないので少なくとも 1 バイ
     トが返されることに注意してください。この場合、(MIN > 0, TIME > 0)、read
     は MIN と TIME メカニズムが最初のバイトを受け取られることによってアクティ
     ブでないかシグナルが受け取られるまで、ブロックされます。データが read()
     の時点でバッファ中にあるなら、結果はまるでデータが read() の直後に受け取
     られるようになります。

   ケース B: MIN > 0, TIME = 0
     この場合、TIME の値が 0 であるので、タイマは役割を果たさず、MIN だけが意
     味があります。保留の read は MIN バイトが受け取られるか、(すなわち、MIN
     バイトが受け取られるまで保留の read はブロックされます)、またはシグナルが
     受け取られるまで充足されません。レコードベースの端末の I/O を読み込むこの
     ケースで使用されるプログラムは読み込み操作で無期限にブロックされます。

   ケース C: MIN = 0, TIME > 0
     この場合、MIN = 0 であるので、TIME はもはやバイト間のタイマを表しません。
     読み込み関数が処理されるとすぐにアクティブとなる読み込みタイマとして現
     在、役立ちます。1 バイトが受け取られるか、または読み込みタイマの期限が切
     れるとすぐに、read は充足されます。タイマが期限が切れるなら、この場合バイ
     トが返されないことに注意してください。タイマの期限が切れていないなら、
     read が満足することができる唯一の方法は 1 バイトが受け取られるかどうかと
     いうことです。この場合、read は 1 バイトの待ちを無期限にブロックしないで
     しょう。読み込みを開始した後 TIME*0.1 秒以内にバイトを全く受け取られない
     なら、読み込みはデータを全く読んでいないので、0 の値を返します。読み込み
     の時点でデータがバッファ中にあるなら、タイマはまるで読み込み直後にデータ
     を受け取られたかのように始動されます。

   ケース D: MIN = 0, TIME = 0
     要求されたバイト数または現在利用可能なバイト数のいずれかの最小は、より多
     くのバイトが入力されるのを待たないで返されます。文字が少しも利用可能でな
     いなら、読み込みはデータを全く読んでいないので、0 の値を返します。

   データの書き込みと出力処理
     プロセスが端末デバイスファイルに 1 バイト以上を書き込むとき、c_oflag
     フィールド (出力モードセクション参照) に従って、それらは処理されます。実
     装は次のようなバッファリングメカニズムを提供します。write() への呼び出し
     が完了してとき、書き込まれたすべてのバイトはデバイスへの送信のためスケ
     ジュールされていますが、送信は必ず完了する必要はありません。

   特殊文字
     一部の文字は入力、出力または両方で特別な機能があります。これらの機能は次
     の通りにまとめられます:

     INTR    入力時の特殊文字で、ISIG フラグ (ローカルモード参照) が有効である
             なら、認識されます。端末が制御端末であるフォアグランドプロセスグ
             ループのすべてのプロセスに送られる SIGINT シグナルを発生させま
             す。ISIG が設定されるなら、INTR 文字は処理されるとき、破棄されま
             す。

     QUIT    入力時の特殊文字で、ISIG フラグが有効であるなら、認識されます端末
             が制御端末であるフォアグランドプロセスグループのすべてのプロセス
             に送られる SIGQUIT シグナルを発生させます。ISIG が設定されるな
             ら、QUIT 文字は処理されるとき、破棄されます。

     ERASE   入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます現
             在行の最後の文字を削除します。カノニカル (canonical) モード入力処
             理参照。NL, EOF または EOL 文字によって区切られるような、行の始ま
             りを超えて削除しません。ICANON が設定されるなら、ERASE 文字は処理
             されるとき、破棄されます。

     KILL    入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます
             NL, EOF または EOL 文字によって区切られるような、全体の行を削除し
             ます。ICANON が設定されるなら、KILL 文字は処理されるとき、破棄さ
             れます。

     EOF     入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます受
             け取られるとき、読み込みを待つすべてのバイトは改行を待たないで、
             直ちにプロセスに渡され、そして EOF は破棄されます。したがって、
             待っているバイトがなければ (すなわち、EOF は行の始めに生じまし
             た)、read() から 0 バイトのカウントが返され、ファイルの終りを表し
             ます。ICANON が設定されるなら、EOF 文字は処理されるとき、破棄され
             ます。

     NL      入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます。
             それは行デリミタ (を区切る) `\n' です。

     EOL     入力時の特殊文字で、ICANON フラグが設定されるなら、認識されますそ
             れは NL のような追加行デリミタです。

     SUSP    ISIG フラグが有効にされるなら、SUSP 文字を受け取られることによっ
             て、端末が制御端末であるフォアグランドプロセスグループのすべての
             プロセスに SIGTSTP シグナルが送られ、そして、SUSP 文字は処理され
             るとき、破棄されます。

     STOP    入力時と出力時の両方の特殊文字で、IXON (出力制御) または IXOFF
             (入力制御) フラグが設定されるなら、認識されます。一時的に出力をサ
             スペンド (一時停止) するために使用することができます。速い端末で
             読み込む前に出力が見えなくなるのを防ぐために役に立ちます。IXON が
             設定されるなら、STOP 文字は処理されるとき、破棄されます。

     START   入力時と出力時の両方の特殊文字で、IXON (出力制御) または IXOFF
             (入力制御) フラグが設定されるなら、認識されます。STOP 文字によっ
             てサスペンド (一時停止) された出力を再開するために使用することが
             できます。IXON が設定されるなら、START 文字は処理されるとき、破棄
             されます。

     CR      入力時の特殊文字で、ICANON フラグが設定されるなら、認識されますそ
             れは C 標準 {2} で示されるような `\r' です。ICANON と ICRNL が設
             定され、IGNCR が設定されないとき、この文字は NL に変換され、NL 文
             字と同じ効果があります。

     次の特殊文字はこのシステムによって拡張定義されたもので、IEEE Std 1003.1
     (``POSIX.1'') termios の一部ではありません。

     EOL2    2 番目の EOL 文字。EOL と同じ機能です。

     WERASE  入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます 2
             つのアルゴリズムの 1 つに従って、現在行で最後のワードを削除しま
             す。ALTWERASE フラグが設定されないなら、最初にどんな先行する空白
             類は削除され、非空白類文字の最大のシーケンスです。ALTWERASE が設
             定されるなら、最初にどんな先行する空白類は削除され、アルファベッ
             ト/下線または非アルファベット/下線の最大のシーケンスです。この 2
             番目のアルゴリズムで特殊なものとして、最初に前のの非空白類文字
             は、先行するワードがアルファベット/下線のシーケンスであるかどうか
             決定する際にスキップされます。これは紛らわしく思えますが、かなり
             実用的であると判明します。

     REPRINT
             入力時の特殊文字で、ICANON フラグが設定されるなら、認識されます現
             在の入力編集行を再びタイプで打たれるようにします。

     DSUSP   フォアグランドプロセスグループのプロセスの 1 つが制御端末に
             read() を発行するとき、SIGTSTP シグナルが配信されるのを除いて、
             SUSP 文字と同様の動作をします。

     LNEXT   入力時の特殊文字で、IEXTEN フラグが設定されるなら、認識されますこ
             の文字の受け取られるなら、文字通り次の文字を取ります。

     DISCARD
             入力時の特殊文字で、IEXTEN フラグが設定されるなら、認識されますこ
             の文字の受け取りは端末出力のフラッシュを切り換えます。

     STATUS  入力時の特殊文字で、ICANON フラグが設定されるなら、認識されますこ
             の文字の受け取りで、SIGINFO シグナルを端末のフォアグランドプロセ
             スグループに送ります。また、NOKERNINFO フラグが設定されないなら、
             カーネルはステータスメッセージを現在のロードアベレージ (負荷平
             均)、フォアグランドのコマンドの名前、プロセス ID、シンボリックな
             待ちチャネル、ユーザ番号とシステムが使用した秒、プロセスが取得し
             た cpu の割合、およびプロセスの常駐セットサイズを表示する端末へ書
             き込みます。

     NL と CR 文字を変更することはできません。残りのすべての文字の値は設定する
     ことができ、下の特殊制御文字の文書で後で説明されます。

     変更可能な特殊制御文字に関連している特殊文字の機能は {_POSIX_VDISABLE} に
     それらの値を設定することによって個別に無効にすることができます。特殊制御
     文字参照。

     2 つ以上の特殊文字に同じ値があるなら、その文字が受け取られているとき実行
     された機能は不定です。

   モデム切断
     制御端末の端末インタフェースによってモデムとの接続が切れているのを検出し
     て、CLOCAL が端末の c_cflag フィールドに設定されていないら、SIGHUP シグナ
     ルが端末に関連づけられた制御プロセスに送られます。他の処置が行われていな
     いなら、これは制御プロセスを終了させます。その後のどんな read() 関数への
     呼び出しはファイルの終りを示す 0 を返します。したがって、端末ファイルを読
     み込み、ファイルの終りをテストするプロセスは切断後に適切に終了することが
     できます。その後のどんな端末デバイスへの write() はデバイスがクローズされ
     るまで errno に EIO を設定して、-1 を返します。

一般的な端末インタフェース
   端末デバイスファイルのクローズ
     最後のプロセスが端末デバイスファイルをクローズするとデバイスに送られるど
     んな出力もどんな入力も破棄されます。そして、HUPCL がコントロールモードで
     設定されて、通信ポートが切断機能をサポートするなら、端末デバイスは切断を
     実行します。

   設定することができるパラメータ
     ある端末の I/O 特性を制御する必要があるルーチンは、ヘッダ <termios.h> で
     定義されるような termios 構造体を使用することによって行えます。この構造体
     はビットフラグの 4 つのスカラ要素と 1 つの特殊文字の配列を最低限含んでい
     ます。スカラフラグ要素は次のように名前が付けられています: c_iflag,
     c_oflag, c_cflagc_lflag です。文字配列は c_cc と名前がつけられ、最大
     のインデックスは NCCS です。

   入力モード
     c_iflag フィールドの値は、基本的な端末入力制御について説明して、次のマス
     クで構成されます:

           IGNBRK   /* BREAK 状態を無視 */
           BRKINT   /* BREAK を SIGINTR にマップ */
           IGNPAR   /* パリティエラーを無視 (破棄) */
           PARMRK   /* パリティとフレーミングエラーをマーク */
           INPCK    /* パリティエラーのチェックを有効 */
           ISTRIP   /* 文字の 8 ビット目を取り去る */
           INLCR    /* NL を CR にマップ */
           IGNCR    /* CR を無視 */
           ICRNL    /* CR を NL にマップ (ala CRMOD) */
           IXON     /* 出力フロー制御を有効 */
           IXOFF    /* 入力フロー制御を有効 */
           IXANY    /* どんな文字も停止の後で再開 */
           IMAXBEL  /* 入力キューが満杯でベルを鳴らす */

     非同期シリアルデータ送信のコンテキストでは、中断 (ブレーク) 状態は 1 バイ
     トを送信する時間以上に続く 0 値ビットのシーケンスと定義されます。0 値の
     ビットの全体のシーケンスは 2 バイト以上と同等な時間が続いても、ただ一つの
     中断状態として解釈されます。非同期シリアルデータ送信以外のコンテキストで
     は、中断条件の定義は実装時定義です。

     IGNBRK が設定されるなら、入力時に検出された中断状態は無視され、すなわち、
     入力キューに置かれないで、したがって、どんなプロセスでも読み込まれませ
     ん。IGNBRK が設定されないで、BRKINT が設定されるなら、中断状態は入力と出
     力キューをフラッシュし、そして、端末がフォアグランドプロセスグループの制
     御端末であるなら、中断状態はただ一つの SIGINT シグナルをそのフォアグラン
     ドプロセスグループに発生させます。IGNBRK も BRKINT も設定されないなら、中
     断状態は単一の `\0' として読み込まれ、または PARMRK が設定されるなら、
     `\377', `\0', `\0' として読み込まれます。

     IGNPAR が設定されるなら、(中断以外の) フレーミングかパリティエラーがある
     1 バイトは無視されます。

     PARMRK が設定され IGNPAR が設定されるなら、(中断以外の) フレーミングかパ
     リティエラーがある 1 バイトは 3 文字シーケンス `\377', `\0', X としてをア
     プリケーションに与えられます、ここで `\377', `\0' は各シーケンスに先行す
     る 2 文字のフラグであり、X はエラーで受け取られた文字のデータです。ISTRIP
     が設定されないなら、この場合あいまいさを避けるために、有効な文字である
     `\377' は `\377', `\377' としてアプリケーションに与えられます。PARMRK も
     IGNPAR も設定されないなら、(中断以外の) フレーミングかパリティエラーは単
     一文字 `\0' としてアプリケーションに与えられます。

     INPCK が設定されるなら、入力パリティチェックは有効になります。INPCK が設
     定されないなら、入力パリティエラーなしで出力パリティの生成を許して、入力
     パリティチェックは無効になります。入力パリティチェックが有効にされるか、
     または無効にされるかは、パリティ検出が有効にされるか、または無効にされる
     か (制御モード参照) とは無関係であることに注意してください。パリティ検出
     が有効にされていますが、入力パリティチェックが無効にされているなら、端末
     が接続されているハードウェアはパリティビットを認識しますが、端末特殊ファ
     イルはこのビットが正しく設定されているかどうかチェックしません。

     ISTRIP が設定されるなら、有効な入力バイトは最初に 7 ビットを取り除き、そ
     うでなければ、すべての 8 ビットを処理します。

     INLCR が設定されるなら、受け取られた NL 文字は CR 文字に変換されます。
     IGNCR が設定されるなら、受け取られた CR 文字は無視されます (読み込まれま
     せん)。IGNCR が設定されないで ICRNL が設定されるなら、受け取られた CR 文
     字は NL 文字に変換されます。

     IXON が設定されるなら、スタート/ストップ (start/stop) 出力制御は有効にさ
     れます。受け取られた STOP 文字は出力をサスペンド (一時停止) し、そして、
     受け取られた START 文字は出力を再開します。また、IXANY が設定されるなら、
     どんな文字も出力を再開します。IXON が設定されるとき、START と STOP 文字は
     読み込まれませんが、単にフロー制御機能を実行します。IXON が設定されないと
     き、START と STOP 文字は読み込まれます。

     IXOFF が設定されるなら、スタート/ストップ入力制御は有効にされます。システ
     ムは、入力キューがオーバフローすること、および入力処理とデータの読み込み
     で説明された未定義の振る舞いを引き起こすことから回避する必要であるので、
     端末デバイスがデータを転送するのを停止することが意図されている、2 つ以上
     の STOP 文字を転送するべきです。そして、システムは、デバイスが入力キュー
     からオーバフローするリスクなしでデータを転送し続けることができるようにな
     るとすぐに、端末デバイスがデータを転送するのを再開することが意図されてい
     る、2 つ以上の START 文字を転送するべきです。STOP と START 文字が送信され
     る明確な条件は実装時定義です。

     IMAXBEL が設定されて、入力キューが満杯であるなら、その後の入力は ASCII
     BEL 文字を出力キューに転送するべきです。

     open() の後の初期の入力制御値は実装時定義です。

   出力モード
     c_oflag フィールドの値は、基本的な端末出力制御について説明して、次のマス
     クで構成されます:

           OPOST   /* 続く出力処理を有効 */
           ONLCR   /* NL を CR-NL にマップ (ala CRMOD) */
           OCRNL   /* CR を NL にマップ */
           TABDLY  /* タブ遅延マスク */
           TAB0    /* タブ遅延と拡張なし */
           TAB3    /* タブを空白に拡張 */
           ONOEOT  /* 出力時に EOT の `^D' を破棄 */
           ONOCR   /* カラム 0 で CR を転送しない */
           ONLRET  /* 端末で NL は CR 機能を実行 */

     OPOST が設定されるなら、残っているフラグのマスクは次の通り解釈されます。
     そうでなければ、文字は変更なしで転送されます。

     ONLCR が設定されるなら、改行 (ニューライン) は復帰 (キャリッジリターン)、
     ラインフィードに変換されます。

     OCRNL が設定されるなら、復帰 (キャリッジリターン) はニューラインに変換さ
     れます。

     TABDLY ビットは、タブ遅延を指定します。c_oflag は、TABDLY でマスクされ、
     値 TAB0 または TAB3 と比較します。TAB3 が設定されるなら、タブは適切な数の
     空白に拡張されます (8 カラムタブストップを仮定)。

     ONOEOT が設定されるなら、ASCII EOT のものは出力時に破棄されます。

     ONOCR が設定されるなら、CR 文字はカラム 0 (第 1 ポジション) のときに、転
     送されません。

     ONLRET が設定されるなら、NL 文字は復帰 (キャリッジリターン) 機能を行うと
     仮定されます。カラムポインタは 0 に設定されます。

   制御モード
     c_cflag フィールドの値は、基本的な端末ハードウェア制御について説明して、
     次のマスクで構成されます。指定されたすべての値がすべてのハードウェアに
     よってサポートされているとは限りません。

           CSIZE       /* 文字サイズマスク */
           CS5         /* 5 ビット (疑似) */
           CS6         /* 6 ビット */
           CS7         /* 7 ビット */
           CS8         /* 8 ビット */
           CSTOPB      /* ストップビットを送る */
           CREAD       /* 受信側を有効 */
           PARENB      /* パリティを有効 */
           PARODD      /* 奇数パリティ, さもなけれは偶数 */
           HUPCL       /* 最後のクローズでハングアップ */
           CLOCAL      /* モデム状態ラインを無視 */
           CCTS_OFLOW  /* 出力の CTS フロー制御 */
           CRTSCTS     /* CCTS_OFLOW と同様 */
           CRTS_IFLOW  /* 入力の RTS フロー制御 */
           MDMBUF      /* キャリアを通してフロー制御出力 */

     CSIZE ビットは送信と受信の両方のビットでバイトサイズを指定します。c_cflag
     は CSIZE でマスクされ、値 CS5, CS6, CS7 または CS8 と比較されます。このサ
     イズはもしあればパリティビットを含んでいません。CSTOPB が設定されるなら、
     2 つのストップビットが使用され、そうでなければ、1 つのストップビットが使
     用されます。例えば、110 ボーでは、通常、2 つのストップビットが使用されま
     す。

     CREAD が設定されるなら、受信側は有効にされます。そうでなければ、どんな文
     字も受け取られません。すべてのハードウェアがこのビットをサポートしている
     とは限りません。実際に、このフラグはかなり愚かです、そして、それが
     termios 仕様の一部でないなら、省略されるでしょう。

     PARENB が設定されるなら、パリティ生成と検出は有効にされ、パリティビットは
     各文字に追加されます。パリティが有効にされるなら、PARODD はパリティが設定
     されるなら奇数パリティを指定し、そうでなければ、偶数パリティが使用されま
     す。

     HUPCL が設定されるなら、最後のプロセスがポートオープンでポートをクローズ
     するかプロセスが終了するとき、ポートへのモデム制御ラインは下げられます。
     モデム接続は中断されます。

     CLOCAL が設定されるなら、接続はモデム状態ラインの状態に依存しません。
     CLOCAL がクリアされるなら、モデム状態ラインはモニタされます。

     通常の環境下で、open() 関数への呼び出しは終了するモデム接続を待ちます。し
     かしながら、O_NONBLOCK フラグが設定されるか、または CLOCAL が設定されてい
     るなら、open() 関数は接続を待たないですぐに返ります。

     CCTS_OFLOW (CRTSCTS) フラグは現在、未使用です。

     MDMBUF が設定されるなら、出力フロー制御は "キャリア検出" の状態によって制
     御されます。

     制御モードが設定されるオブジェクトは非同期シリアル接続でないなら、モード
     のいくつかは無視されるかもしれません。例えば、別のホスト上の端末へのネッ
     トワーク接続でボーレートの設定を試みるなら、直接接続される端末とマシンの
     間との接続でボーレートは設定されるかどうか分かりません。

   ローカルモード
     c_lflag フィールドの値は様々な機能の制御について説明し、次のマスクで構成
     されています。

           ECHOKE      /* 行 kill (削除) のための視覚削除 */
           ECHOE       /* 視覚削除文字 */
           ECHO        /* エコー機能を有効 */
           ECHONL      /* ECHO がオフでも NL をエコー */
           ECHOPRT     /* ハードコピーのための視覚削除モード */
           ECHOCTL     /* ^(文字) のように制御文字をエコー */
           ISIG        /* INTR, QUIT, [D]SUSP シグナルを有効 */
           ICANON      /* カノニカルモードの入力行 */
           ALTWERASE   /* 代替の WERASE アルゴリズムを使用 */
           IEXTEN      /* DISCARD と LNEXT を有効 */
           EXTPROC     /* 外部処理 */
           TOSTOP      /* 出力からバックグラウンドジョブを停止 */
           FLUSHO      /* フラッシュされる出力 (状態) */
           NOKERNINFO  /* VSTATUS からのカーネル出力なし */
           PENDIN      /* XXX ペンディング入力 (状態) を再タイプ */
           NOFLSH      /* 割り込みの後でフラッシュしない */

     ECHO が設定されるなら、入力文字は端末にエコーバックされます。ECHO が設定
     されないなら、入力文字はエコーされません。

     ECHOE と ICANON が設定されるなら、ERASE 文字は、可能なら、端末に表示され
     ている現在行の最後の文字を削除します。削除文字がなければ、実装は、この場
     合であるまたは何もしないことの印をエコーします。

     ECHOK と ICANON が設定されるなら、KILL 文字は現在行を破棄し、システムは
     KILL 文字の後に `\n' 文字をエコーします。

     ECHOKE と ICANON が設定されるなら、KILL 文字は現在行を破棄し、システムは
     端末に表示されている行を削除します。

     ECHOPRT と ICANON が設定されるなら、システムは、ディスプレイが印刷デバイ
     スであり、前方スラッシュがあとに続いた ERASE 文字を処理するとき、バックス
     ラッシュと削除文字を印刷すると仮定しています。

     ECHOCTL が設定されるなら、システムは制御文字があとに続いたキャレットを使
     用する視覚方法で制御文字をエコーします。

     ALTWERASE が設定されるなら、システムは WERASE 文字 (WERASE 参照) を処理す
     るとき、何がワードを構成するかを決定する代替のアルゴリズムを使用します。

     ECHONL と ICANON が設定されるなら、ECHO が設定されなくても `\n' 文字をエ
     コーします。

     ICANON が設定されるなら、カノニカル処理は有効にされます。これは erase と
     kill 編集機能とカノニカル (canonical) モード入力処理で説明されるように
     NL, EOF と EOL によって区切られた行に入力文字の組み立てを有効にします。

     ICANON が設定されないなら、読み込み要求は直接入力キューから充足されます。
     少なくとも MIN バイトを受け取ったか、またはタイムアウト値 TIME がバイトの
     間で期限が切れるまで、読み込みは充足されません。時間の値は 10 分の 1 秒を
     表します。その他の詳細については、非カノニカル (noncanonical) モード入力
     処理を参照してください。

     ISIG が設定されるなら、それぞれの入力文字は特殊制御文字の INTR, QUIT, と
     SUSP (ジョブ制御専用) かチェックされます。入力文字がこれらの制御文字の 1
     つに一致するなら、その文字に関連している機能が実行されます。ISIG が設定さ
     れないなら、チェックは行われません。したがって、ISIG が設定される場合にだ
     け、これらの特別の入力機能が可能です。

     IEXTEN が設定されるなら、実装で定義された機能は入力データから認識されま
     す。設定される IEXTEN がどのように ICANON, ISIG, IXON または IXOFF と相互
     に作用するかは、実装時定義です。IEXTEN が設定されないなら、実装で定義され
     た機能は認識されず、対応する入力文字は ICANON, ISIG, IXON と IXOFF に関し
     て説明されるように処理されません。

     NOFLSH が設定されるなら、INTR, QUIT と SUSP 文字に関連する入力と出力
     キューの通常のフラッシュは行われません。

     TOSTOP が設定されるなら、端末のフォアグランドプロセスグループにプロセスが
     ないなら制御端末に書き込もうとするプロセスのプロセスグループにシグナル
     SIGTTOU を送ります。このシグナルはデフォルトでプロセスグループのメンバを
     停止します。そうでなければ、そのプロセスで発生する出力は現在の出力スト
     リームへ出力されます。SIGTTOU シグナルをブロックするか、または無視してい
     るプロセスは、除外され、出力を生成することができ、SIGTTOU シグナルは送ら
     れません。

     NOKERNINFO が設定されるなら、STATUS 文字 (STATUS 参照) を処理するとき、
     カーネルはステータスメッセージを生成しません。

   特殊制御文字
     特殊制御文字値は配列 c_cc によって定義されます。このテーブルは配列イン
     デックス、対応する特殊文字とシステムデフォルト値をリストします。システム
     デフォルトの正確なリストについては、ヘッダファイル <sys/ttydefaults.h> を
     調べてください。

           インデックス名    特殊文字             デフォルト値
           VEOF              EOF                  ^D
           VEOL              EOL                  _POSIX_VDISABLE
           VEOL2             EOL2                 _POSIX_VDISABLE
           VERASE            ERASE                ^? `\177'
           VWERASE           WERASE               ^W
           VKILL             KILL                 ^U
           VREPRINT          REPRINT              ^R
           VINTR             INTR                 ^C
           VQUIT             QUIT                 ^\\ `\34'
           VSUSP             SUSP                 ^Z
           VDSUSP            DSUSP                ^Y
           VSTART            START                ^Q
           VSTOP             STOP                 ^S
           VLNEXT            LNEXT                ^V
           VDISCARD          DISCARD              ^O
           VMIN              ---                  1
           VTIME             ---                  0
           VSTATUS           STATUS               ^T

     変更可能な特殊制御文字 (特殊文字参照) の 1 つの値が {_POSIX_VDISABLE} で
     あるなら、その関数は使用不可能です。すなわち、入力データは利用不可能な特
     殊文字として認識されません。ICANON が設定されないなら、{_POSIX_VDISABLE}
     の値には、c_cc 配列の VMIN と VTIME エントリについて特別な意味はありませ
     ん。

     open() 後でフラグと制御文字の初期値は、ヘッダ <sys/ttydefaults.h> の値に
     従って設定されます。

関連項目
     stty(1), tcgetsid(3), tcsendbreak(3), tcsetattr(3), tcsetsid(3), tty(4)

FreeBSD 11.2                   December 26, 2009                  FreeBSD 11.2

Table of Contents

FreeBSD マニュアル検索