LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Век живи, век учись. ;)

Вот, кстати хорошее объяснение на пальцах: http://stackoverflow.com/questions/2530663/printf-anomaly-after-fork

И ещё: http://mdoc.su/o/setvbuf

     The three types of stream buffering available are unbuffered, block
     buffered, and line buffered.  When an output stream is unbuffered,
     information appears on the destination file or terminal as soon as
     written; when it is block buffered, many characters are saved up and
     written as a block; when line buffered, characters are saved up until a
     newline (`\n') is output or input is read from any stream attached to a
     terminal device (typically stdin).

Одним словом — в shell буферизация линейная, в pipe — блочная. Вот и разгадка.

Исходная версия beastie, :

Век живи, век учись. ;)

Вот, кстати хорошее объяснение на пальцах: http://stackoverflow.com/questions/2530663/printf-anomaly-after-fork