Spec-Zone.ru › Dart 1

dart:io

метод lock абстрактного класса

Future<RandomAccessFile> lock([FileLock mode = FileLock.EXCLUSIVE, int start = 0, int end = -1 ])

Блокирует файл или часть файла.

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

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

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

Если mode равен FileLock.EXCLUSIVE или FileLock.SHARED, возникает ошибка, если блокировка не может быть получена. Если mode равен FileLock.BLOCKING_EXCLUSIVE или FileLock.BLOCKING_SHARED, возвращаемое Future разрешается только когда блокировка получена.

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

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

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

Источник

Future<RandomAccessFile> lock(
    [FileLock mode = FileLock.EXCLUSIVE, int start = 0, int end = -1]);

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/RandomAccessFile/lock.html

Spec-Zone.ru

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