Spec-Zone.ru › Dart 2

dart:io

Метод lockSync

void lockSync(
  1. [FileLock mode = FileLock.exclusive,
  2. int start = 0,
  3. int end = -1]
)

Синхронно блокирует файл или часть файла.

По умолчанию будет получен эксклюзивный замок, но это можно переопределить с помощью аргумента mode.

Блокирует байтовый диапазон от start до end файла, исключая байт с позицией end. Если не указаны аргументы, весь файл блокируется. Если указан только start, файл блокируется с байтовой позиции start до конца файла, независимо от его размера. Можно указать явное значение end, которое находится за пределами текущей длины файла.

Для получения эксклюзивного замка на файл он должен быть открыт для записи.

Если mode равно FileLock.exclusive или FileLock.shared, выбрасывается исключение, если замок не может быть получен. Если mode равно FileLock.blockingExclusive или FileLock.blockingShared, вызов возвращает только после получения замка.

ПРИМЕЧАНИЕ блокировка файлов имеет незначительные различия в поведении на разных платформах:

В Linux и OS X используется консультативный замок, который имеет неожиданную семантику: все замки, связанные с данным файлом, удаляются, когда любой дескриптор файла для этого файла закрывается процессом. Обратите внимание, что это фактически не блокирует доступ к файлу. Также обратите внимание, что консультативные замки действуют на уровне процесса. Это означает, что несколько изолятов в одном процессе могут получить эксклюзивный замок на один и тот же файл.

В Windows области, используемые для блокировки и разблокировки, должны совпадать. Если это не так, разблокировка приведет к ошибке ОС "Сегмент уже разблокирован".

Реализация

void lockSync(
    [FileLock mode = FileLock.exclusive, int start = 0, int end = -1]);

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-io/RandomAccessFile/lockSync.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API