Хотя все правы в том, что у вас есть бесконечный цикл, stderr не буферизуется, поэтому вы получаете его немедленно, stdout является буферизованной строкой, поэтому он откладывается до получения новой строки, но они не упоминают, что stdout не имеет бесконечной памяти. Я думаю, что буферы 1k или около того по умолчанию (см. Setbuf). Если вы будете ждать достаточно долго, вы получите очень длинный набор последовательностей приветствий. Вполне возможно, что последний hello-out может быть обрезан на части пути через строку "hello-out".
[...]hello-outhello-outhellhello-errhello-err
^^^^