История изменений
Исправление 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