*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> flock (2)              



NAME    [Toc]    [Back]

       flock - Apply or remove an advisory lock on an open file

SYNOPSIS    [Toc]    [Back]

       #include <sys/fcntl.h>

       int flock(
               int filedes,
               int operation );

PARAMETERS    [Toc]    [Back]

       Specifies  a  file  descriptor  returned  by  a successful
       open() or fcntl() function, identifying the file to  which
       the  lock  is  to be applied or removed.  Specifies one of
       the  following  constants  for  flock(),  defined  in  the
       <sys/fcntl.h>  file: Apply a shared lock.  Apply an exclusive
 lock.  Do not block when locking.  This value can  be
       logically  ORed  with either LOCK_SH or LOCK_EX.  Remove a

DESCRIPTION    [Toc]    [Back]

       The flock() function applies or removes an  advisory  lock
       on  the  file associated with the filedes file descriptor.
       Advisory locks allow cooperating processes to perform consistent
  operations on files, but do not guarantee consistency
 (that is, processes may still access  files  without
       using  advisory  locks, possibly resulting in inconsistencies).

       You can use the flock() function to  coordinate  a  file's
       lock status on local, CFS, and NFS file systems.

       The  locking  mechanism  allows two types of locks: shared
       locks and exclusive locks. At  any  time  multiple  shared
       locks  may be applied to a file, but at no time are multiple
 exclusive, or both shared and exclusive, locks allowed
       simultaneously on a file.

       A  shared  lock  may be upgraded to an exclusive lock, and
       vice versa, simply  by  specifying  the  appropriate  lock
       type. This results in the previous lock being released and
       the new lock applied (possibly after other processes  have
       gained and released the lock).

       Requesting a lock on an object that is already locked normally
 causes the caller to be blocked until the  lock  may
       be  acquired.  If  LOCK_NB  is included in operation, then
       this will not happen; instead,  the  call  will  fail  and
       errno will be set to [EWOULDBLOCK].

NOTES    [Toc]    [Back]

       Locks are on files, not file descriptors. This means that:
       Locks are not inherited by a child process resulting  from
       a  fork()  call.   All  locks associated with a file for a
       given process are removed when the process closes any file
       descriptor for that file.

       Processes that are blocked awaiting a lock may be awakened
       by signals.

       The flock() interface is not part of  any  UNIX  standard.
       Therefore,  if  you are designing and writing applications
       to be  portable  across  platforms,  you  should  use  the
       fcntl() file locking interface instead of flock().

RETURN VALUES    [Toc]    [Back]

       Upon  successful  completion, 0 (zero) is returned. Otherwise,
 -1 is returned and errno  is  set  to  indicate  the

ERRORS    [Toc]    [Back]

       If  the flock() function fails, errno may be set to one of
       the following values: The file is locked and  the  LOCK_NB
       option was specified.  The filedes argument is not a valid
       open file descriptor.  A signal  interrupted  the  flock()
       call.  The operator is not valid.  The lock table is full.
       Too many regions are already locked.  The lock is  blocked
       by  some  lock  from  another process. Putting the calling
       process to sleep while waiting for  that  lock  to  become
       free would cause a deadlock.

SEE ALSO    [Toc]    [Back]

       Functions:  close(2), exec(2), fcntl(2), fork(2), open(2),

[ Back ]
 Similar pages
Name OS Title
lockf Linux apply, test or remove a POSIX lock on an open file
lockf Tru64 Lock and unlocks regions of open file descriptors
patch Linux apply a diff file to an original
patch IRIX apply a diff file to an original
patch FreeBSD apply a diff file to an original
patch OpenBSD apply a diff file to an original
VOP_ADVLOCK FreeBSD advisory record locking
noderun IRIX Run process on specific node (advisory specification)
AFidentifyfd IRIX retrieve the audio file format of a file descriptor / open AFfilehandle
IvToRib IRIX convert an Open Inventor 2.0 file to a Renderman .rib file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service