

          flock options handle [start] [length] [origin]
               This command places a lock on all or part of the file
               specified by handle.  The lock is either advisory or
               mandatory, depending on the mode bits of the file.  The
               lock is placed beginning at relative byte offset start
               for length bytes.  If start or length is omitted or
               empty, zero is assumed.  If length is zero, then the
               lock always extents to end of file, even if the file
               grows.  If origin is "start", then the offset is
               relative to the beginning of the file. If it is
               "current", it is relative to the current access
               position in the file.  If it is "end", then it is
               relative to the end-of-file (a negative is before the
               EOF, positive is after).  If origin is omitted, start
               is assumed.

               The following options are recognized:

               -read - Place a read lock on the file.  Multiple
               processes may be accessing the file with read-locks.

               -write - Place a write lock on the file.  Only one
               process may be accessing a file if there is a write
               lock.

               -nowait - If specified, then the process will not block
               if the lock can not be obtained.  With this option, the
               command returns 1 if the lock is obtained and 0 if it
               is not.

               See your system's fcntl system call documentation for
               full details of the behavior of file locking.  If
               locking is being done on ranges of a file, it is best
               to use unbuffered file access (see the fcntl command).
