X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=original%2Fman2%2Fflock.2;fp=original%2Fman2%2Fflock.2;h=0000000000000000000000000000000000000000;hb=2460a0b8024ceb8570acdbc9208713d79458efcb;hp=c29379889d0890c083c087c5052fbacf3b3758b3;hpb=83f9e5d087c3464d5131604d3c9893479e6228eb;p=linuxjm%2FLDP_man-pages.git diff --git a/original/man2/flock.2 b/original/man2/flock.2 deleted file mode 100644 index c2937988..00000000 --- a/original/man2/flock.2 +++ /dev/null @@ -1,256 +0,0 @@ -.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) and -.\" and Copyright 2002 Michael Kerrisk -.\" -.\" %%%LICENSE_START(VERBATIM) -.\" Permission is granted to make and distribute verbatim copies of this -.\" manual provided the copyright notice and this permission notice are -.\" preserved on all copies. -.\" -.\" Permission is granted to copy and distribute modified versions of this -.\" manual under the conditions for verbatim copying, provided that the -.\" entire resulting derived work is distributed under the terms of a -.\" permission notice identical to this one. -.\" -.\" Since the Linux kernel and libraries are constantly changing, this -.\" manual page may be incorrect or out-of-date. The author(s) assume no -.\" responsibility for errors or omissions, or for damages resulting from -.\" the use of the information contained herein. The author(s) may not -.\" have taken the same level of care in the production of this manual, -.\" which is licensed free of charge, as they might when working -.\" professionally. -.\" -.\" Formatted or processed versions of this manual, if unaccompanied by -.\" the source, must acknowledge the copyright and authors of this work. -.\" %%%LICENSE_END -.\" -.\" Modified Fri Jan 31 16:26:07 1997 by Eric S. Raymond -.\" Modified Fri Dec 11 17:57:27 1998 by Jamie Lokier -.\" Modified 24 Apr 2002 by Michael Kerrisk -.\" Substantial rewrites and additions -.\" 2005-05-10 mtk, noted that lock conversions are not atomic. -.\" -.\" FIXME Maybe document LOCK_MAND, LOCK_RW, LOCK_READ, LOCK_WRITE -.\" which only have effect for SAMBA. -.\" -.TH FLOCK 2 2014-09-21 "Linux" "Linux Programmer's Manual" -.SH NAME -flock \- apply or remove an advisory lock on an open file -.SH SYNOPSIS -.B #include -.sp -.BI "int flock(int " fd ", int " operation ); -.SH DESCRIPTION -Apply or remove an advisory lock on the open file specified by -.IR fd . -The argument -.I operation -is one of the following: -.RS 4 -.TP 9 -.B LOCK_SH -Place a shared lock. -More than one process may hold a shared lock for a given file -at a given time. -.TP -.B LOCK_EX -Place an exclusive lock. -Only one process may hold an exclusive lock for a given -file at a given time. -.TP -.B LOCK_UN -Remove an existing lock held by this process. -.RE -.PP -A call to -.BR flock () -may block if an incompatible lock is held by another process. -To make a nonblocking request, include -.B 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 -.BR flock () -are associated with an open file description (see -.BR open (2)). -This means that duplicate file descriptors (created by, for example, -.BR fork (2) -or -.BR 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 -.B LOCK_UN -operation on any of these duplicate descriptors, or when all -such descriptors have been closed. - -If a process uses -.BR open (2) -(or similar) to obtain more than one descriptor for the same file, -these descriptors are treated independently by -.BR flock (). -An attempt to lock the file using one of these file descriptors -may be denied by a lock that the calling process has -already placed via another descriptor. - -A process may hold only one type of lock (shared or exclusive) -on a file. -Subsequent -.BR flock () -calls on an already locked file will convert an existing lock to the new -lock mode. - -Locks created by -.BR flock () -are preserved across an -.BR execve (2). - -A shared or exclusive lock can be placed on a file regardless of the -mode in which the file was opened. -.SH RETURN VALUE -On success, zero is returned. -On error, \-1 is returned, and -.I errno -is set appropriately. -.SH ERRORS -.TP -.B EBADF -.I fd -is not an open file descriptor. -.TP -.B EINTR -While waiting to acquire a lock, the call was interrupted by -delivery of a signal caught by a handler; see -.BR signal (7). -.TP -.B EINVAL -.I operation -is invalid. -.TP -.B ENOLCK -The kernel ran out of memory for allocating lock records. -.TP -.B EWOULDBLOCK -The file is locked and the -.B LOCK_NB -flag was selected. -.SH CONFORMING TO -4.4BSD (the -.BR flock () -call first appeared in 4.2BSD). -A version of -.BR flock (), -possibly implemented in terms of -.BR fcntl (2), -appears on most UNIX systems. -.SH NOTES -Since kernel 2.0, -.BR flock () -is implemented as a system call in its own right rather -than being emulated in the GNU C library as a call to -.BR fcntl (2). -With this implementation, -there is no interaction between the types of lock -placed by -.BR flock () -and -.BR fcntl (2), -and -.BR flock () -does not detect deadlock. -(Note, however, that on some systems, such as the modern BSDs, -.\" E.g., according to the flock(2) man page, FreeBSD since at least 5.3 -.BR flock () -and -.BR fcntl (2) -locks -.I do -interact with one another.) -.PP -In Linux kernels up to 2.6.11, -.BR flock () -does not lock files over NFS -(i.e., the scope of locks was limited to the local system). -Instead, one could use -.BR fcntl (2) -byte-range locking, which does work over NFS, -given a sufficiently recent version of -Linux and a server which supports locking. -Since Linux 2.6.12, NFS clients support -.BR flock () -locks by emulating them as byte-range locks on the entire file. -This means that -.BR fcntl (2) -and -.BR flock () -locks -.I do -interact with one another over NFS. -Since Linux 2.6.37, -.\" commit 5eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2 -the kernel supports a compatibility mode that allows -.BR flock () -locks (and also -.BR fcntl (2) -byte region locks) to be treated as local; -see the discussion of the -.I "local_lock" -option in -.BR nfs (5). -.PP -.BR flock () -places advisory locks only; given suitable permissions on a file, -a process is free to ignore the use of -.BR flock () -and perform I/O on the file. -.PP -.BR flock () -and -.BR fcntl (2) -locks have different semantics with respect to forked processes and -.BR dup (2). -On systems that implement -.BR flock () -using -.BR fcntl (2), -the semantics of -.BR flock () -will be different from those described in this manual page. -.PP -Converting a lock -(shared to exclusive, or vice versa) is not guaranteed to be atomic: -the existing lock is first removed, and then a new lock is established. -Between these two steps, -a pending lock request by another process may be granted, -with the result that the conversion either blocks, or fails if -.B LOCK_NB -was specified. -(This is the original BSD behavior, -and occurs on many other implementations.) -.\" Kernel 2.5.21 changed things a little: during lock conversion -.\" it is now the highest priority process that will get the lock -- mtk -.SH SEE ALSO -.BR flock (1), -.BR close (2), -.BR dup (2), -.BR execve (2), -.BR fcntl (2), -.BR fork (2), -.BR open (2), -.BR lockf (3) - -.I Documentation/filesystems/locks.txt -in the Linux kernel source tree -.RI ( Documentation/locks.txt -in older kernels) -.SH COLOPHON -This page is part of release 3.79 of the Linux -.I man-pages -project. -A description of the project, -information about reporting bugs, -and the latest version of this page, -can be found at -\%http://www.kernel.org/doc/man\-pages/.