Если вы добавите '\n'
к вашему сообщению, оно будет (или должно), т.е. "hello-out\n"
.
Причина в том, что stdout
является буферизованным , чтобы быть более эффективным, тогда как stderr
не буферизует его вывод и больше подходит для сообщений об ошибках и вещей, которые необходимо распечатать немедленно.
stdout
будет обычно будет покраснел когда:
- Будет напечатана новая строка (
\n
)
- Вы читаете с
stdin
fflush()
вызывается на нем
РЕДАКТИРОВАТЬ: Еще одна вещь, которую я хотел добавить, прежде чем мой компьютер вышел из строя ... дважды ... было то, что вы также можете использовать setbuf(stdout, NULL);
, чтобы отключить буферизацию stdout
. Я делал это раньше, когда мне приходилось использовать write()
(Unix), и я не хотел, чтобы мой вывод был буферизован.