В Linux обычно используют flock или fcntl-блокировки, но они advisory: остальные участники должны соблюдать протокол. Это не полная имитация запрета доступа Windows для любого процесса.
Как получить эксклюзивный доступ к файлу в Unix/Linux, имитируя поведение Windows?
В Linux обычно используют flock или fcntl-блокировки, но они advisory: остальные участники должны соблюдать протокол. Это не полная имитация запрета доступа Windows для любого процесса.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Linux обычно используют flock или fcntl-блокировки, но они advisory: остальные участники должны соблюдать протокол. Это не полная имитация запрета доступа Windows для любого процесса.
Откройте файл, получите эксклюзивный lock, выполните операцию и гарантированно освободите ресурс. Все readers/writers должны применять совместимые locks. Переименование или создание нового inode может обойти блокировку старого файла, а сетевые ФС имеют особенности. Если нужен обязательный контроль доступа, проектируйте доступ через один сервис и права, а не полагайтесь только на flock.
Источник: man7.org.