Ctrl + D vs. Enter

0

Eu abri cat sem nenhum argumento no terminal:

cat

Em seguida, digitei um texto e pressionei Ctrl+D , e o que eu digitei foi repetido.

Eu digitei novamente um texto e pressionei Enter , e o que eu digitei também foi repetido.

Existe uma diferença entre Ctrl+D e Enter (estou falando de quando há um texto no terminal ao pressionar uma dessas teclas, porque quando não há texto, Ctrl+D envia EOF , enquanto Enter não).

    
por user258851 03.11.2017 / 14:49

1 resposta

1

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).

    
por 03.11.2017 / 14:57