端末デバイスがクックモードの場合、端末に入力されたバイトはカーネルによってキャッシュおよび処理され、一部のバイトは行の編集および「消費」に使用され、read
が一度に1行を返します。
ただし、ptyの場合、マスターfdへの出力はスレーブfdからの入力として読み取ることができ、その逆も可能です。したがって、私の質問は次のとおりです。
Ptyデバイスには、ttyとは異なり、ttyデバイスごとに1つのバッファーという2つの独立した入力バッファーがありますか?
Ptyは通常のttyとして動作します。通常のttyには、入力キュー(rawモードとクックモード)と出力キューがあります。
Ptyを使用すると、tty出力キューはマスター入力に接続され、ttyraw入力はマスター出力に接続されます。つまり、キューが多いということではなく、tty出力キューをマスター側からの入力と見なすことができるということです。
追加
Ptyは通常のttyです。一般的なttyパーツは、ライン編集、rawおよびクックドモード入力、Ctrl + Sなどのフロー制御などを処理します。
すべてのttyには、実際の入力と出力を処理するバックエンドがあります。これはシリアルドライバにすることができます。キーボードおよびVGAまたはフレームバッファーとインターフェイスするドライバーにすることができます。 PTYマスターにすることもできます。 ptyの場合、tty出力はマスターが読み取れるようになり、マスター書き込みはraw入力キューに配置されます。