X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/9385eb3d10ebe5eb398c52040ec3dbfba9b0cdcf..51282358e8fdbfc483c0c34e7eae9b89b51f2570:/gen/FreeBSD/lockf.3 diff --git a/gen/FreeBSD/lockf.3 b/gen/FreeBSD/lockf.3 index 7041fe2..bf6b7b1 100644 --- a/gen/FreeBSD/lockf.3 +++ b/gen/FreeBSD/lockf.3 @@ -34,7 +34,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/gen/lockf.3,v 1.11 2002/12/18 10:13:54 ru Exp $ +.\" $FreeBSD: src/lib/libc/gen/lockf.3,v 1.13 2004/07/02 23:52:10 ru Exp $ .\" .Dd December 19, 1997 .Dt LOCKF 3 @@ -102,7 +102,8 @@ unlocked. The section to be locked or unlocked starts at the current offset in the file and extends forward for a positive size or backward for a negative size (the preceding bytes up to but not including the -current offset). However, it is not permitted to lock a section that +current offset). +However, it is not permitted to lock a section that starts or extends before the beginning of the file. If .Fa size @@ -142,7 +143,8 @@ controlled by the process. Locked sections will be unlocked starting at the current file offset through .Fa size -bytes or to the end of file if size is 0. When all of a locked section +bytes or to the end of file if size is 0. +When all of a locked section is not released (that is, when the beginning or end of the area to be unlocked falls within a locked section), the remaining portions of that section are still locked by the process. @@ -160,23 +162,37 @@ the requested section is the maximum value for an object of type off_t, when the process has an existing lock in which size is 0 and which includes the last byte of the requested section, will be treated as a request to unlock from the start of the requested section with a -size equal to 0. Otherwise an +size equal to 0. +Otherwise an .Dv F_ULOCK request will attempt to unlock only the requested section. .Pp A potential for deadlock occurs if a process controlling a locked region is put to sleep by attempting to lock the locked region of -another process. This implementation detects that sleeping until a +another process. +This implementation detects that sleeping until a locked region is unlocked would cause a deadlock and fails with an .Er EDEADLK error. .Pp The .Fn lockf , -.Xr fcntl 2 +.Xr fcntl 2 , and .Xr flock 2 -locks may be safely used concurrently. +locks are compatible. +Processes using different locking interfaces can cooperate +over the same file safely. +However, only one of such interfaces should be used within +the same process. +If a file is locked by a process through +.Xr flock 2 , +any record within the file will be seen as locked +from the viewpoint of another process using +.Xr fcntl 2 +or +.Fn lockf , +and vice versa. .Pp Blocking on a section is interrupted by any signal. .Sh RETURN VALUES