Por que um programa de linha de comando precisa de entrada do usuário quando não está especificado no código-fonte?

0

Por que um programa que é executado a partir da linha de comando espera pela entrada do usuário (pressionando Enter) se não foi programado para isso?

Eu estava usando uma instância do AWS EC2 para executar um programa intensivo em computação que faz algumas coisas, incluindo a leitura de arquivos, a execução de cálculos no conteúdo de arquivos e a criação de novos arquivos. Para cada uma das tarefas, o programa imprimiu algumas informações de depuração para stdout .

Depois de passar por algumas etapas, aparentemente ficou preso em um cálculo massivo. O programa não avançou por muito tempo e o uso de recursos caiu do nível constante ao iniciar o passo, então eu acertei Enter por frustração e ele prosseguiu imediatamente.

  • Eu não solicitei entrada
  • O autor me garantiu que uma pausa de entrada não estava no código-fonte
  • Considerando os fatos, uma coincidência é muito improvável

Este é um bug / quirk / recurso do sistema ?

Por que isso aconteceu e posso evitar isso no futuro?

    
por George 10.07.2018 / 17:17

1 resposta

1

O prompt de comando do Windows (cmd.exe) tem um modo de "edição rápida" que é ativado por padrão.

Comomodo"edição rápida" ativado, se você clicar no prompt de comando enquanto ele está atualizando, por exemplo, no caso de executar um comando como:

ping www.google.com -t

a atualização da saída será interrompida até que uma chave seja inserida, como Enter no caso da pergunta.

    
por 10.07.2018 / 21:46