端末がネイティブモードのときにCtrl + Dを押します。

端末がネイティブモードのときにCtrl + Dを押します。

端末がネイティブモードでないときにテキストを書き込むと、テキストはバッファに配置されます。ラインバッファ)、およびを押すと、対応するバッファ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

関連情報