Безопасно, чтобы несколько процессов одновременно записывали в один файл? [CentOs 6, ext4]

Я создаю систему, в которой несколько подчиненных процессов обмениваются данными через сокеты домена unix и одновременно записывают в один и тот же файл . Я никогда не изучал файловые системы или эту конкретную файловую систему (ext4), но мне кажется, что здесь может быть какая-то опасность.

Каждый процесс записывает в непересекающееся подмножество выходного файла (т. Е. Записываемые блоки не перекрываются). Например, P1 записывает только первые 50% файла, а P2 записывает только вторые 50%. Или, возможно, P1 записывает только блоки с нечетными номерами, а P2 записывает блоки с четными номерами.

Безопасно ли, чтобы P1 и P2 (выполнялись одновременно в разных потоках) записывали в один и тот же файл без использования какой-либо блокировки? Другими словами, не налагает ли файловая система неявную блокировку?

Примечание: Я, к сожалению, не вправе выводить несколько файлов и присоединяться к ним позже.

Примечание: Мое прочтение с момента публикации этого вопроса не согласуется с единственным опубликованным ниже ответом. Все, что я прочитал, говорит о том, что то, что я хочу делать, хорошо, в то время как респондент ниже настаивает, что то, что я делаю, небезопасно, но я не могу распознать описанную опасность.

47
задан RayLuo 8 December 2017 в 01:03
поделиться