Насколько я понял, fork() создает дочерний процесс, копируя образ родительского процесса.
Мой вопрос о том, как дочерние и родительские процессы совместно используют поток stdout?
Может ли функция printf() одного процесса быть прервана другим или нет? Что может вызвать смешанный вывод.
Или вывод функции printf() атомарный?
Например:
Первый случай:
parent: printf("Hello");
child: printf("World\n");
Console has: HeWollorld
Второй случай:
parent: printf("Hello");
child: printf("World\n");
Console has: HelolWorld