Teclas para códigos de controle ASCII

1

Ok, então percebi recentemente a correspondência entre os pressionamentos de tecla Control e os códigos de controle ASCII, por exemplo, ^ D envia o caractere EOT porque EOT é o código ASCII 4 e D é a quarta letra do alfabeto. Eu estou querendo saber o que seria o pressionamento de teclas para caracteres além de 26 decimal, ou seja, ESC, FS, GS, RS e EUA. A tecla Escape envia o caractere ESC? E sobre o pressionamento de tecla padrão ^] no Telnet que escapa para o shell. Isso envia o caractere ESC?

E peço desculpas se isso não estiver relacionado ao assunto. Eu não encontrei nenhum outro lugar para colocá-lo.

    
por user628544 12.10.2016 / 18:50

2 respostas

2

As combinações de teclas para os outros caracteres de controle são as seguintes:

^[ - Escape
^\ - File Separator
^] - Group Separator
^^ - Record Separator
^_ - Unit Separator

telnet usa o separador de grupos como seu escape para sua interface interativa. Como o caractere de escape é frequentemente usado em aplicativos de terminal, ele é normalmente enviado para o lado distante no qual a conexão de telnet é estabelecida.

    
por 12.10.2016 / 19:53
2

De ascii(7) no Linux lendo em linhas, por ^D usando sua correspondência, encontramos:

   004   4     04    EOT (end of transmission)   104   68    44    D

E, em seguida, por ^] usando essa mesma correspondência:

   035   29    1D    GS  (group separator)       135   93    5D    ]

Isto pode adicionalmente ser confirmado colocando o terminal no modo raw, e imprimindo o código hexadecimal da chave mashed, então procurando o código hexadecimal em ascii(7) :

perl -MTerm::ReadKey -e 'warn "PID $$\n"; $SIG{TERM}=sub {ReadMode 0; exit};' \
  -e 'ReadMode 4; while ($k=ReadKey(0)) { printf "%02x\n", ord $k }'
    
por 12.10.2016 / 20:00

Tags