端末の^Sと^Z制御文字の違いは何ですか?

端末の^Sと^Z制御文字の違いは何ですか?

CTRL-Zターミナルエミュレータを使用すると、現在実行中のプログラムを使用または停止できますCTRL-S。これらの信号の違いは何ですか?

ベストアンサー1

Ctrl-Z実際、現在のフォアグラウンドプログラムを停止しますが、ターミナルエミュレータとは何の関係もありません。これは現在実行中のシェルによって処理されます。デフォルトのUnixシェルにはこの機能がないため、シングルユーザーモードで起動される最小バージョンの組み込みLinuxなどの一部のシステムでは、この機能が欠落している可能性があります。

Ctrl-S現在、フォアグラウンドプログラムを完全に停止する必要はありません。これは、オペレーティングシステムの端末コードに端末へのデータ転送を一時的に停止するように要求することです。プログラムは実際にはまだ実行中であり、出力バッファを満たさない限り、システムコールをブロックしません。ターミナル出力一時停止機能Ctrl-Sは古代機能です。実は基準テレタイプ時代にさかのぼる、すべてのUnixyオペレーティングシステムはルールに従ってサポートされていますが、無効にする(stty -ixon)または他のものに置き換えることができます。Ctrl-Sたとえば、テキストエディタやその他のインタラクティブプログラムは頻繁に再バインドされます。

停止後に再起動する方法で、追加の違いを確認できます。Ctrl-Q後でターミナル出力を再開してCtrl-S停止したプロセスを再開するには、制御シェルでコマンドを実行するCtrl-Z必要があります。fg

おすすめ記事