Computer Science
FLOCK(2) Linux Programmer's Manual FLOCK(2)
NAME
flock - apply or remove an advisory lock on an open file
SYNOPSIS
#include <sys/file.h>
int flock(int fd, int operation)
DESCRIPTION
Apply or remove an advisory lock on an open file. The
file is specified by fd. Valid operations are given
below:
LOCK_SH Shared lock. More than one process may
hold a shared lock for a given file at a
given time.
LOCK_EX Exclusive lock. Only one process may
hold an exclusive lock for a given file
at a given time.
LOCK_UN Unlock.
LOCK_NB Don't block when locking. May be speci-
fied (by or'ing) along with one of the
other operations.
A single file may not simultaneously have both shared and
exclusive locks.
A file is locked (i.e., the inode), not the file descrip-
tor. So, dup(2) and fork(2) do not create multiple
instances of a lock.
RETURN VALUE
On success, zero is returned. On error, -1 is returned,
and errno is set appropriately.
ERRORS
EWOULDBLOCK
The file is locked and the LOCK_NB flag was
selected.
CONFORMING TO
4.4BSD (the flock(2) call first appeared in 4.2BSD).
NOTES
flock(2) does not lock files over NFS. Use fcntl(2)
instead: that does work over NFS, given a sufficiently
recent version of Linux and a server which supports lock-
ing.
flock(2) and fcntl(2) locks have different semantics with
respect to forked processes and dup(2).
SEE ALSO
open(2), close(2), dup(2), execve(2), fcntl(2), fork(2).
There are also locks.txt and mandatory.txt in
/usr/src/linux/Documentation.
Linux 11 December 1998 1
Back to the index