当终端处于原始模式时按 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

相关内容