enter
faz a disciplina de linha do dispositivo terminal enviar o buffer de entrada atual mais \n
(traduzido do \r
enviado pelo terminal (emulador) pela configuração icrnl
da disciplina de linha) para a aplicação que está lendo do dispositivo terminal. ^D
faz a disciplina de linha do dispositivo de terminal enviar o buffer de entrada atual sem um caractere \n
nor ^D
(o caractere é eliminado pela disciplina de linha, a menos que você tenha enviado ^V
antes).
Pressionar ^D
duas vezes seguidas torna cat
exit porque supõe que não há mais nada a ler ( read()
retorna 0 byte).