Документация по LinuxLinuxDoc.Ru 🔍

flock - устанавливает или снимает "мягкую" блокировку(advisory lock) открытого файла

НАЗВАНИЕ
flock - устанавливает или снимает "мягкую" блокировку
(advisory lock) открытого файла

СИНТАКСИС
#include

int flock(int fd, intoperation);

ОПИСАНИЕ
Устанавливает или снимает "мягкую" блокировку открытого
файла. Файл задается описателем файла fd.

Допустимы следующие операции:


LOCK_SH (разделяемая блокировка. Несколько
процессов одновременно могут держать
разделяемую блокировку файла
одновременно.);

LOCK_EX (исключительная блокировка. Только один
процесс в каждый
момент времени может держать
исключительную блокировку файла.);

LOCK_UN (разблокировать файл);

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

Файл не может иметь одновременно разделяемую и
исключительную блокировку. Блокируется файл (т.е. inode),
а не описатель файла. Поэтому dup(2) и fork(2) не создают
нескольких копий (instances) блокировки.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успешного завершения возвращается нулевое
значение. При ошибке возвращается -1, а переменная errno
приобретает соответствующее значение.

КОДЫ ОШИБОК
EWOULDBLOCK
Файл заблокирован, а при вызове функции был задан
флаг LOCK_NB.

СООТВЕТСТВИЕ СТАНДАРТАМ
4.4BSD (вызов flock(2) впервые появился в 4.2BSD).

ЗАМЕЧАНИЯ

flock(2) не блокирует файлы, расположенные в файловой
системе NFS; используйте для этого fcntl(2). Требуются
более свежие версии Linux и сервера, поддерживающие
блокировку.

Блокировки, обеспечиваемые системными вызовами flock(2) и
fcntl(2), имеют различную относительно порожденных
процессов и
вызова dup(2) семантику.
Читать новости Linux в Telegram
Linux - flock - устанавливает или снимает "мягкую" блокировку(advisory lock) открытого файла
Мы в соцсетях ✉