ソフトウェアフロー制御:端末でTXがブロックされるのはなぜですか?

ソフトウェアフロー制御:端末でTXがブロックされるのはなぜですか?

^Sキーを押した後に端末からデータを送信できないのはなぜですか?私は常に^S端末がそれを使用して、ttyドライバがアプリケーションから端末にデータを転送してはならないことをttyドライバに知らせるために使用していると思いました(例:ディスプレイ処理中)。しかし、^Sこれは端末からアプリケーションに出力をパイプしてはいけないことをttyドライバに知らせることがわかりました。これは驚くべきことです。これはなぜ必要ですか?

これは次のテストで発見されました。

xtermまたは を開き、 を入力しgnome-terminaldateEnter^S^Mも呼ばれます)、待ってから を入力します^Q。その結果、最近の日付ではなく現在の日付が表示されます。

答え1

転送したいデータを再エコーできないため、アプリケーションがブロックされる効果を確認できます。

関連情報