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