Does anyone know what the problem might be or what I am doing wrong?
Eu não acredito que seja algo errado nas suas duas soluções. Simplesmente não há como eles solicitarem o comportamento que você descreve ... sem forçar um segundo processo (e você não chama fork()
), ou matar o processo time
, ou hackear o kernel, etc.
Talvez seu computador esteja quebrado.
Anteriormente, tive um comportamento estranho causado pela corrupção do disco silencioso. Eu poderia tentar executar debsums
ou rpm --verify -a
para verificar.
Também pode ser um bug na cadeia de software que exibe a saída.
Por exemplo o gnome-terminal 3.22 possui um bug de travamento quando alimentado com uma seqüência de binários . Várias versões do kernel Linux tiveram este grande bug onde enviando mais de 4kB através de um emulador de terminal ("pseudo -tty ") para um programa habilitado para linha de leitura, como um shell, pode perder algumas linhas . Dumping de 35MB de texto por vez é relativamente incomum, pode haver algum bug como esse em seu sistema operacional.
Se você puder reproduzir o problema com um arquivo de entrada de apenas 100kB, aqui está um computador diferente para você que quase certamente não é corrompido da mesma forma que o computador host em que é executado. A saída do console é muito lenta, há apenas alguns megabytes de espaço livre também. A saída de executar seu programa em time
não corresponderá a segundos reais por algum motivo, mas não importa para essa questão. A caixa de texto da área de transferência não aceita entrada de teclado para mim (Firefox 53), então usei o menu do botão direito para copiar os dados em /dev/clipboard
de acordo com o FAQ.