Pressionando Ctrl + D quando o terminal está no modo raw

0

Quando o terminal não está no modo raw, se eu escrever algum texto, este texto será colocado em um buffer (eu acho que é chamado de line buffer ), depois disso se eu pressionar Ctrl+D , o conteúdo deste buffer será enviado para o meu aplicativo.

Mas o que acontece quando eu pressiono Ctrl+D e o terminal está no modo raw (ou seja, o que escrevo no terminal não é armazenado em buffer, mas sim enviado diretamente para meu aplicativo), algum código ASCII (provavelmente 0x04 ) ser enviado para o meu pedido?

    
por user258851 03.11.2017 / 16:26

1 resposta

0

Você pode verificar isso com strace

No shell 1:

$ echo $$
1234

No shell 2:

strace -p 1234 -f

No shell 1:

$ stty raw
$ cat
[type something including ^D]

No Shell 2, você pode ver:

[pid 12345] read(0, "", 131072)       = 1
    
por 03.11.2017 / 17:45