Ctrl+D 与 Enter

Ctrl+D 与 Enter

cat在终端中没有任何参数地打开:

cat

然后我输入一些文字并按下Ctrl+D,我输入的内容就会得到回显。

我重新输入一些文字并按下Enter,我输入的内容也得到了回显。

Ctrl+D和之间有区别吗Enter(我说的是当按下这些键之一时终端中有文本,因为当没有文本时,Ctrl+D发送EOF,而Enter不会)。

答案1

enter使终端设备线路规则将当前输入缓冲区加上\n\r通过线路规则设置由终端(仿真器)发送的翻译而来icrnl)发送到正在从终端设备读取的应用程序。^D使终端设备行规则发送当前输入缓冲区,不带\n“或”^D字符(该字符会被行规则吃掉,除非您^V事先发送)。

^D连续按两次会退出cat,因为它假定没有更多内容可读取(read()返回 0 字节)。

相关内容