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 | Недействительный аргумент |
Пример: