IXONとIXOFFのtty属性の違いは何ですか?

IXONとIXOFFのtty属性の違いは何ですか?

具体的には、疑似端末の用語で言います。ファイル記述子masterslave擬似端末ペアがあるとします(制御端末であると仮定)。IXONon master(または同じもの)を無効にすると、これをslave行うときにwrite(master, &control_s_code, 1)このread(slave, &byte, 1)コードが得られます。同じ懸念control_q_code。問題は、無効化が何をするかということですIXOFF

ベストアンサー1

IXOFFpseudo-ttysでは実装されておらず、IXOFFpseudo-ttyの設定は効果がありません。

IXOFF入力キューがいっぱいになったときにttyドライバがもう一方のVSTOP端に文字を送信するようにし(より多くのデータを送信しないように)、文字を処理し、スペースがVSTARTある場合はもう一方の端に文字を送信する必要があります。より多くのデータ。

IXONこれは後者とは異なり、ttyドライバはVSTART相手から送信された/文字を尊重し、()文字が受信されるまですべての転送を停止します。VSTOPVSTOP^SVSTART^Q

たとえば、擬似ttyの場合、「もう一方の端」がデフォルトのptyです。ターミナルエミュレータで設定の代わりにyesを押すと、^Sスレーブttyは入力した文字のエコーを停止し、ここに記録されたデータを表示します(スレーブttyがブロックまたは返されると、出力キューがいっぱいになるまでキューに保存されます)。IXONIXOFFwrite(2)EAGAIN

カーネルは常にスレーブの入力キューがいっぱいであるかどうかを確認し(構造フィールドなどを確認することで)、マスターのptyに書き込むプロセスをブロックすることができるので、pseudo-ttyにフロー制御を実装する必要はありません。

ソフトウェアフロー制御は、実際のシリアル接続を使用する場合にのみ便利です。いいえRTS / CTSなどの帯域外信号:Unix、TCP、またはその他の「パイプライン」抽象化とは異なり、ワイヤはバッファリングされず、受信者がすべてのステータス変更を読み取るまで入力またはブロックされません。

おすすめ記事