Блокировка файлов не является частью C, но зависит от операционной системы. Поскольку вы говорите о разветвлении, я предполагаю, что вы используете UNIX или UNIX-подобную систему (например, Linux или BSD.)
В этом случае вы можете использовать функции flock
или lockf
. Эти блокировки сохраняются при разветвлении, что означает, что несколько процессов могут иметь монопольную блокировку для одного и того же файла, если блокировка была получена в родительском процессе до разветвления.
В Windows его можно указать в вызове CreateFile
или позже с помощью функций LockFile
или LockFileEx
.