Quais foram os motivos originais para adicionar um “erro padrão” separado da “saída padrão”?

2

O Unix fornece saída padrão e erro padrão, que podem ser redirecionados independentemente.

$ ls /not-exist
ls: cannot access '/not-exist': No such file or directory

$ ls /not-exist > redirect.out
ls: cannot access '/not-exist': No such file or directory

$ ls /not-exist 2> redirect.err
$

Eu ouvi que há uma história em algum lugar na Web, o que dá uma razão divertida para essa separação ter sido implementada. Ele envolve a formatação computadorizada que o Unix inicial foi usado para (e pipelines Unix, eu acho). Eu não consegui encontrá-lo agora.

Alguém gostaria de vincular essa história aqui, associá-la às tags relevantes e torná-la mais fácil de encontrar?

    
por sourcejedi 08.08.2018 / 13:41

2 respostas

5

Há o relato de 2013 de Steve C. Johnson sobre isso, como usuário, em que os usuários reclamam sobre fototipagem e - eis! - o problema é resolvido dois dias depois. Mas Douglas McIlroy contou a história de forma um pouco diferente um quarto de século antes.

Na versão de McIlroy, o erro padrão foi uma conseqüência natural da famosa introdução de Ken Thompson sobre a linha de comando do Unix. No mundo do Unix anterior ao pipeline, o fato de que os erros seriam enviados para o arquivo para o qual a saída padrão havia sido redirecionada era "problema". Mas após a introdução do pipeline, esse comportamento "tornou-se intolerável quando a saída foi enviada para um processo desavisado". McIlroy conta que Dennis Ritchie introduziu o mecanismo de erro padrão para finalmente corrigir isso "logo" depois da Sexta Edição.

Além disso, McIlroy estava, é claro, trabalhando na ideia de oleodutos no Unix por um tempo justo, até o momento, incluindo uma série de propostas durante o período de pelo menos dois anos; tendo inventado a metáfora da hosepipe de jardim meia década antes disso. O conceito de um fluxo separado e distinto dos fluxos de pipeline não apareceu magicamente do nada em apenas alguns dias.

Leitura adicional

por 08.08.2018 / 15:01
1

"Somewhere on the Web" means "in the Wikipedia article on this subject" in this case. – JdeBP

Standard error was added to Unix after several wasted phototypesetting runs ended with error messages being typeset instead of displayed on the user's terminal. – Wikipedia

link

    
por 08.08.2018 / 14:12