Функция LockFile


Функция LockFile блокирует заданный файл для единоличного доступа вызывающего процесса.

Чтобы установить дополнительные опции, используйте функцию LockFileEx.

Синтаксис

 BOOL LockFile(
  HANDLE hFile,                   // дескриптор файла
  DWORD dwFileOffsetLow,          // младшее слово смещения
  DWORD dwFileOffsetHigh,         // старшее слово смещения
  DWORD nNumberOfBytesToLockLow,  // младшее слово длины
  DWORD nNumberOfBytesToLockHigh  // старшее слово длины
);

Параметры

hFile

[in] Дескриптор файла с блокируемой областью. Дескриптор файла должен быть создан с правом доступа GENERIC_READ или GENERIC_WRITE. Дополнительную информацию смотри в статье Система безопасности и права доступа файла.

dwFileOffsetLow

[in] Младшее слово смещения начального байта  в файле, где должна начаться блокировка. 

dwFileOffsetHigh

[in] Старшее слово смещения начального байта  в файле, где должна начаться блокировка. 

Windows 95/98/Me: параметр dwFileOffsetHigh должен быть 0, это знак величины расширение значения dwFileOffsetLow. Любое другое значение, должно быть отвергнуто.

nNumberOfBytesToLockLow

[in] Младшее слово длины блокируемого диапазона байтов.

nNumberOfBytesToLockHigh

[in] Старшее слово длины блокируемого диапазона байтов.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - не нуль.

Если функция завершается ошибкой, величина возвращаемого значения - нуль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания

Функция UnlockFile деблокирует область файла, блокированную функцией LockFile.

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

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

Вы можете блокировать байты, которые находятся за пределами конца текущего файла. Это полезно для координации добавляемых записей в конец файла.

Блокировки не могут накладываться на существующую блокированную область файла.

Если функция LockFile не может блокировать область файла, она немедленно возвращает нуль. Она ничего не блокирует. Чтобы выйти из ситуации запроса блокировки файла, который будет блокироваться до тех пор, пока запрашивается блокировка, используйте функцию LockFileEx без флажка LOCKFILE_FAIL_IMMEDIATELY.

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

Код примера

Пример смотри в статье Добавление одного файла  в конец  другого файла

Смотри также 

Обзор Управление файламиФункции для файлового ввода-вывода (I/O), CreateFile, LockFileEx, UnlockFile

Размещение и совместимость LockFile

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT Workstation

Да

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL -
Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

-

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz