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  specified
                    (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 descriptor.
     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).


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.