対話型UNIXアプリケーションが端末の変更を認識するのは一般的ですか?

対話型UNIXアプリケーションが端末の変更を認識するのは一般的ですか?

容量拡張が認められ、幅広くサポートされるということは皆知っていますが、各端末の容量が変わることができるでしょうか?それとも端末自体を変更できますか?

ベストアンサー1

いいえ。


SIGWINCHUnix 信号をプロセスに送信する端末ドライバは、サイズ変更をサポートします。これはウィンドウサイズの変更を示します。新しい寸法は端末装置から読み取ることができる。

Unix信号のリストを見ると、他の端末機能信号がないことがわかります。

ほとんどの端末機能は環境変数によって決まりますTERM。環境変数なので、TERM他のプロセスやカーネルによって変更されません。カーネルは、どの端末がシリアルラインに接続されているかを調べようとはしません。また、端末のサイズを把握しようとしません。この機能は、従来のシリアル回線では実装されません。

シリアルラインはプロトコルを自動的に検索するようには設計されていません。編集:端末を切り離して他の端末を接続することは絶対に可能です。ユーザーはTERM端末のサイズとともにstty rows 24 cols 80手動で更新する必要があります。これはシェルや他のアプリケーションでは自動的に検出されません。

AIUI、サイズ変更機能はPOSIX規格にはありません。関連stty設定もman stty標準化されていないと具体的に示されています。しかし、これらの機能はおそらくすべての最新システムに共通して適用されます。固定文字端末は使用されなくなりました。ほとんどの移植可能なプログラムはncursesライブラリまたは同様のライブラリを使用して作成されているため、正確な信号(したがって読み取りサイズのioctl)は異なる場合があります。

おすすめ記事