追加読書

追加読書

たとえば、端末から制御文字を送信するときにを押すとCtrl+Cライン規律この制御文字を表すバイトが受信されます(の0x03場合Ctrl+C)。

今ではなくライン規律0x03端末に関連するプログラムにバイトを送信すると、代わりに信号が送信されますSIGINT(または他の制御文字の場合は別の操作を実行します)。

今予防する方法はありますか?ライン規律制御文字処理から始めて、私が望むのは、端末に関連するプログラムが制御文字(0x03私たちの場合)を表す実際のバイトを受け取ることです。

答え1

Linuxでは、次のものを使用できます。

$ stty intr undef

その端末で。これにより、ブレーク文字が空( "undef")に設定されます。復元するには、次を使用します。

$ stty intr ^c

man stty詳細より。

答え2

さまざまな制御文字[… ] 制御文字

私は複数形を見つけました。あなたが探している非標準入力モード、POSIX標準以前は、次のように知られています。オリジナルモード。これは、GNU Readline、ZLE、またはlibeditを使用するアプリケーションによって採用されたモードです。それらのコードはtcgetattr()、ライブラリ関数cfmakeraw()またはtcsetattr()類似の機能を使用して設定します。これらはの基礎でもありますstty raw。 (stty saneこのゲームをプレイする場合は、存在することに注意してください。)

追加読書

関連情報