IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

flock (2)

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>

       intflock(int fd,int operation);

DESCRIPTION
       Apply or remove an advisory lock on the open file specified by fd.  The
       parameter operation is one of the following:


              LOCK_SH   Place a shared lock.  More than one process may hold a
                        shared lock for a given file at a given time.

              LOCK_EX   Place an exclusive lock.  Only one process may hold an
                        exclusive lock for a given file at a given time.

              LOCK_UN   Remove an existing lock held by this process.


       A call to flock() may block if an incompatible lock is held by  another
       process.   To  make  a non-blocking request, include LOCK_NB (by ORing)
       with any of the above operations.

       A single file may not simultaneously have  both  shared  and  exclusive
       locks.

       Locks  created  by  flock()  are  associated with a file, or, more pre-
       cisely, an open file table  entry.   This  means  that  duplicate  file
       descriptors  (created  by, for example, fork(2) or dup(2)) refer to the
       same lock, and this lock may be modified or released using any of these
       descriptors.   Furthermore,  the lock is released either by an explicit
       LOCK_UN operation on any of these duplicate descriptors,  or  when  all
       such descriptors have been closed.

       A  process  may  only  hold one type of lock (shared or exclusive) on a
       file.  Subsequent flock() calls on an already locked file will  convert
       an existing lock to the new lock mode.

       Locks created by flock() are preserved across an execve(2).

       A  shared  or  exclusive lock can be placed on a file regardless of the
       mode in which the file was opened.

RETURNVALUE
       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.

       EBADF  fd is not a not an open file descriptor.

       EINTR  While  waiting  to  acquire  a lock, the call was interrupted by
              delivery of a signal caught by a handler.

       EINVAL operation is invalid.

       ENOLCK The kernel ran out of memory for allocating lock records.

CONFORMINGTO
       4.4BSD (the flock(2) call first appeared  in  4.2BSD).   A  version  of
       flock(2),  possibly  implemented  in terms of fcntl(2), appears on most
       Unices.

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 locking.

       Since kernel 2.0, flock(2) is implemented as a system call in  its  own
       right  rather  than  being  emulated  in the GNU C library as a call to
       fcntl(2).  This yields true BSD  semantics:  there  is  no  interaction
       between the types of lock placed by flock(2) and fcntl(2), and flock(2)
       does not detect deadlock.

       flock(2) places advisory locks only; given suitable  permissions  on  a
       file,  a  process is free to ignore the use of flock(2) and perform I/O
       on the file.

       flock(2) and fcntl(2) locks have different semantics  with  respect  to
       forked processes and dup(2).

SEEALSO
       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/Documenta-
       tion.



Linux                             2002-04-24                          FLOCK(2)

_Exitgetsockoptoutwshmat
_exitgettidoutw_pshmctl
_llseekgettimeofdaypauseshmdt
_newselectgetuidpersonalityshmget
_sysctlgttypipeshmop
acceptidlepivot_rootshutdown
accessinbpollsigaction
acctinb_pprctlsigaltstack
adjtimexinlpreadsigblock
afs_syscallinl_pprofsiggetmask
alarminsbpselectsigmask
alloc_hugepagesinslptracesignal
arch_prctlinswpwritesigpause
bdflushintroquotactlsigpending
bindinwreadsigprocmask
breakinw_preaddirsigqueue
brkioctlreadlinksigreturn
cacheflushioctl_listreadvsigsetmask
capgetiopermrebootsigsuspend
capsetioplrecvsigtimedwait
chdiripcrecvfromsigvec
chmodkillrecvmsgsigwaitinfo
chownkillpgrenamesocket
chrootlchownrmdirsocketcall
clonelinksbrksocketpair
closelistensched_get_priority_maxssetmask
connectllseeksched_get_priority_minstat
creatlocksched_getaffinitystatfs
duplseeksched_getparamstime
dup2lstatsched_getschedulerstty
execvemadvisesched_rr_get_intervalswapoff
exitmincoresched_setaffinityswapon
fchdirmkdirsched_setparamsymlink
fchmodmknodsched_setschedulersync
fchownmlocksched_yieldsyscall
fcntlmlockallselectsyscalls
fdatasyncmmapselect_tutsysctl
flockmmap2semctlsysfs
forkmodify_ldtsemgetsysinfo
free_hugepagesmountsemopsyslog
fstatmprotectsendtime
fstatfsmpxsendfiletimes
fsyncmremapsendmsgtkill
ftruncatemsgctlsendtotruncate
futexmsggetsetcontextumask
getcontextmsgopsetdomainnameumount
getdentsmsgrcvsetegidumount2
getdomainnamemsgsndseteuiduname
getdtablesizemsyncsetfsgidundocumented
getegidmunlocksetfsuidunimplemented
geteuidmunlockallsetgidunlink
getgidmunmapsetgroupsuselib
getgroupsnanosleepsethostidustat
gethostidnfsservctlsethostnameutime
gethostnamenicesetitimerutimes
getitimerobsoletesetpgidvfork
getpagesizeoldfstatsetpgrpvhangup
getpeernameoldlstatsetpriorityvm86
getpgidoldoldunamesetregidwait
getpgrpoldstatsetresgidwait3
getpidoldunamesetresuidwait4
getppidopensetreuidwaitpid
getpriorityoutbsetrlimitwrite
getresgidoutb_psetsidwritev
getresuidoutlsetsockopt 
getrlimitoutl_psettimeofday 
getrusageoutsbsetuid 
getsidoutslsetup 


My Money 2.0.49
Personal financial software
Linux Kernel 2.6 2.6.32-rc8
Linux Kernel
GCstar 1.5.0
Personal collections manager
ImageMagick 6.5.7.9
ImageMagick image processing studio
BibleTime 2.4
Bible study software for Linux / KDE
PHP 5.3.1
Server-side, cross-platform, HTML embedded scripting language.
LFTP 4.0.4
Shell-like command line ftp client.
Tellico 2.1.1
Collection manager for books, music, videos, and bibliographies
Totem 2.28.4
Movie player for Gnome
GNOME 2.29.2
GNOME desktop environment
Free IT Magazines, White Papers, eBooks, and more !
Oracle Magazine

Contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more.

Vulnerability Management for Dummies

Get all the Facts and See How to Implement a Successful Vulnerability Management Program.

Website Magazine

Has tapped premier talent in the Internet industry for our content and each and every issue will contain practical advice and insights for website owners.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Quick Survey

Please take our survey and help us improve our website to serve you better.

Thank you.
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info