Программирование на C и C++

Онлайн справочник программиста на C и C++

locking

int locking(int handle, int mode, long length)

Прототип: 
Описание: 

Функция locking() не определена стандартом ANSI С. Она используется для блокирования об­ласти совместно используемого файла при использовании сети. Блокирование файла закрывает доступ к нему для других пользователей.

Параметр mode может принимать значение одного из следующих макросов:

Mode Значение
LK_LOCK Блокирует указанную область. Если блокирование не удается с первого раза, повторяет попытку десять раз, по одной попытке каждую секунду
LK_RLCK То же, что и LK_LOCK
LK_NBLCK Блокирует указанную область. Если блокирование не удается с первого раза, повторных попыток не делает
LK_NBRLCK То же, что и LK_NBLCK
LK_UNLCK Снимает блокировку с указанной области

 Дескриптор файла, который нужно заблокировать, указывается параметром handle. Этот файл будет заблокирован (или разблокирован), начиная с текущей позиции на длину length байт.

Функция locking() возвращает 0 в случае успеха и —1 в противном случае. В случае неудачи errno устанавливается в одно из следующих значений:

EBADF Недействительный дескриптор файла
EACCESS Доступ запрещен
EDEADLOCK Файл не может быт заблокирован
EINVAL Недействительный аргумент

 

Пример: