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