После некоторых исследований я обнаружил следующее в этой ссылке :
Стандарт POSIX требует, чтобы C stdio
Операции FILE * являются атомарными.
POSIX-совместимые библиотеки C (например, на
Solaris и GNU / Linux) имеют
внутренний мьютекс для сериализации операций
на ФАЙЛ * с.
Похоже, что вызовы должны быть атомарными, но это зависит от вашей платформы. В этой же ссылке есть еще один абзац, который позволяет вам думать, что программист должен позаботиться:
Итак, для 3.0 вопрос "
многопоточность безопасна для ввода / вывода "должна быть
ответил, "это C вашей платформы
библиотека безопасна для ввода / вывода? "
по умолчанию некоторые не являются; многие предлагают
несколько реализаций C
библиотека с различными компромиссами
Потокобезопасность и эффективность. Вы,
программист, всегда требуется
заботиться о нескольких нитях.
Кроме того, поскольку у вас есть два разных FILE*
в двух разных процессах, я думаю, что у вас нет выбора.