Configuração do Terminal
Eu acho que isso tem mais a ver com a maneira como o terminal é configurado, do que com qualquer problema de buffer. Verifique a saída de stty -a | grep intr
, você deve ter intr = ^C;
na linha de saída se Ctrl- Cestiver ativado no tty
/ pty
. Caso contrário, você pode stty intr ^C
habilitá-lo. Adicione a linha ao seu .tcshrc
ou .login
para torná-lo permanente (ou exclua a linha que a altera em primeiro lugar!).
Se falhar Ctrl- C, você também pode tentar enviar SIGQUIT
com Ctrl- \. Se isso não funcionar, verifique novamente stty -a | grep quit
se está configurado corretamente.
Configuração do emulador de terminal
Verifique também as configurações do seu emulador de terminal (se você estiver usando um), pode ser que haja um atalho configurado nesse nível (talvez para cópia ou algo assim) e o Ctrl- Cnão atinja o pty
nível. Um atalho também pode ser configurado em outro lugar no ambiente de área de trabalho ou no sistema Windows.
Um bom teste no Linux se você estiver usando um emulador de terminal é alternar para um console Linux ( Ctrl- Alt- F1), faça o login lá e veja se o mesmo comportamento ocorre. Caso contrário, isso sugere que o problema está no seu sistema Windows ou emulador de terminal.
Pode ser um problema com o atraso entre os dados que estão sendo lidos no pty
dispositivo, conforme sugerido por peterph . Mas se este é o caso e você tem que realmente esperar minutos para os dados a serem exibidos, então certamente o emulador de terminal é tamponamento maneira demasiados dados (ou o seu PC é muito lento). A resposta seria encontrar uma maneira de reduzir esse tamanho de buffer nas configurações do emulador de terminal ou usar outra.
Dica Extra
Algo mais que vale a pena acrescentar; Normalmente, acabo na cat
situação de fuga quando, acidentalmente, cat
um arquivo binário. O outro efeito disso pode ser alterar as configurações do terminal (se os dados binários coincidirem com vários códigos de escape do terminal, o que geralmente ocorre). Se tput
estiver instalado (normalmente é por padrão), você pode evitar ter que reiniciar com o seguinte comando:
tput reset