Любой процесс, который может открыть файл для записи, может писать в него. Запись может происходить одновременно с вашими собственными записями, что может привести к (потенциально) неопределенным состояниям.
Вы, как разработчик приложения, несете ответственность за предотвращение плохих вещей. На мой взгляд, принудительная блокировка не очень хорошая идея.
Лучше не предоставлять права на запись процессам, которые вы не хотите записывать в файл.
Если несколько процессов открывают файл, они будут иметь независимые файловые указатели, поэтому они могут искать () и не влиять друг на друга.
Если файл открывается потоковой программой (или задачей, которая совместно использует свои файловые дескрипторы с другим, в более общем смысле), указатель файла также используется совместно, поэтому вам нужно использовать другой метод для доступа к файлу, чтобы избежать состояния гонки вызывая хаос - обычно функции pread, pwrite или scatter / collect, readv и writev.