Я думаю, что атомарность в printf предусмотрена для потоков. Я читал, что в libc это предусмотрено с помощью механизма блокировки потоков. Это нормально. Но мне интересно, было ли это расширено, чтобы обеспечить атомарность printf между процессами. Я думаю, что атомарность между процессами должна быть реализована в драйвере, который фактически выполняет вывод на консоль, диск или что-то еще.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -processes