端末がネイティブモードでないときにテキストを書き込むと、テキストはバッファに配置されます。ラインバッファ)、およびを押すと、対応するバッファCtrl+D
の内容がマイアプリケーションに転送されます。
しかしCtrl+D
、を押して端末が生モードにある場合(つまり、端末に書き込んだ内容がバッファリングされず、自分のアプリケーションに直接送信される)、一部のASCIIコードが0x04
(おそらく)私のアプリケーションに送信された場合はどうなりますか?
答え1
確認できますstrace
シェル1から:
$ echo $$
1234
シェル2から:
strace -p 1234 -f
シェル1から:
$ stty raw
$ cat
[type something including ^D]
Shell 2では、次のことがわかります。
[pid 12345] read(0, "\4", 131072) = 1