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),
lockf(3). There are also locks.txt and mandatory.txt in
/usr/src/linux/Documentation.
Man(1) output converted with
man2html