1 .\" Copyright 1997 Nicolas Lichtmaier <nick@debian.org>
2 .\" Created Thu Aug 7 00:44:00 ART 1997
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 .\" GNU General Public License for more details.
19 .\" Added section stuff, aeb, 2002-04-22.
20 .\" Corrected include file, drepper, 2003-06-15.
22 .\" Japanese Version Copyright (c) 2000-2002 Yuichi SATO
23 .\" all rights reserved.
24 .\" Translated Tue Jul 11 19:02:58 JST 2000
25 .\" by Yuichi SATO <ysato@h4.dion.ne.jp>
26 .\" Updated & Modified Mon Jul 15 02:10:29 JST 2002 by Yuichi SATO
27 .\" Updated 2010-04-18, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.24
32 .\"WORD: descriptor ディスクリプタ
35 .TH LOCKF 3 2011-09-11 "GNU" "Linux Programmer's Manual"
38 .\"O lockf \- apply, test or remove a POSIX lock on an open file
39 lockf \- オープンされたファイルに対する POSIX ロックの適用・テスト・解除を行う
42 .B #include <unistd.h>
44 .BI "int lockf(int " fd ", int " cmd ", off_t " len );
47 .\"O Feature Test Macro Requirements for glibc (see
48 .\"O .BR feature_test_macros (7)):
50 .RB ( feature_test_macros (7)
57 _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ >=\ 500 ||
58 _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
63 .\"O Apply, test or remove a POSIX lock on a section of an open file.
64 オープンされたファイルのセクションに対して、
65 POSIX ロックの適用・テスト・解除をする。
66 .\"O The file is specified by
68 .\"O a file descriptor open for writing, the action by
74 は書き込みのためにオープンしたファイルディスクリプタである。
78 .\"O and the section consists of byte positions
79 .\"O .IR pos .. pos + len \-1
83 .\"O .IR pos - len .. pos \-1
86 .\"O is negative, where
88 .\"O is the current file position, and if
93 .IR pos .. pos + len \-1
97 .IR pos - len .. pos \-1
100 .\"O is zero, the section extends from the current file position to
101 .\"O infinity, encompassing the present and future end-of-file positions.
103 が 0 の場合、セクションは現在のファイル位置から無限大までとなる
104 (つまり現在の、あるいは変更された場合は将来の、ファイル終端位置まで)。
105 .\"O In all cases, the section may extend past current end-of-file.
106 どの場合においても、セクションは以前のファイル終端よりも拡大されうる。
110 .\"O is just an interface on top of
118 .\"O Many other systems implement
120 .\"O in this way, but note that POSIX.1-2001 leaves the relationship between
124 .\"O locks unspecified.
125 .\"O A portable application should probably avoid mixing calls
126 .\"O to these interfaces.
135 おそらく、移植性が必要なアプリケーションでは、
139 のロックを混ぜて呼び出すのは避けるべきであろう。
141 .\"O Valid operations are given below:
145 .\"O Set an exclusive lock on the specified section of the file.
146 .\"O If (part of) this section is already locked, the call
147 .\"O blocks until the previous lock is released.
148 ファイルの指定されたセクションに排他ロックを設定する。
149 そのセクション (の一部) が既にロックされていた場合、
150 前のロックが解除されるまで関数の呼び出しがブロックされる。
151 .\"O If this section overlaps an earlier locked section,
152 .\"O both are merged.
153 このセクションが前にロックされているセクションと重なった場合、
155 .\"O File locks are released as soon as the process holding the locks
156 .\"O closes some file descriptor for the file.
157 .\"O A child process does not
158 .\"O inherit these locks.
160 そのファイルのファイルディスクリプタをクローズすると、
167 .\"O but the call never blocks and returns an error instead if the file is
170 と同様であるが、ファイルが既にロックされている場合、
171 関数の呼び出しはブロックを行わずにエラーを返す。
174 .\"O Unlock the indicated section of the file.
175 .\"O This may cause a locked section to be split into two locked sections.
176 ファイルの指定されたセクションのロックを解除する。
177 これによりロックされたセクションが 2 つに分割されるかもしれない。
180 .\"O Test the lock: return 0 if the specified section
181 .\"O is unlocked or locked by this process; return \-1, set
186 .\"O on some other systems),
187 .\"O if another process holds a lock.
189 指定されたセクションがロックされていないか、
190 このプロセスによりロックされている場合、0 を返す。
191 他のプロセスがロックを保持している場合、\-1 を返し、
198 .\"O .SH "RETURN VALUE"
200 .\"O On success, zero is returned.
201 .\"O On error, \-1 is returned, and
203 .\"O is set appropriately.
211 .\"O .BR EACCES " or " EAGAIN
212 .BR EACCES " もしくは " EAGAIN
213 .\"O The file is locked and
217 .\"O was specified, or the operation is prohibited because the file has
218 .\"O been memory-mapped by another process.
224 または、ファイルが他のプロセスによりメモリーマップされており、
229 .\"O is not an open file descriptor; or
237 .\"O is not a writable file descriptor.
239 がオープンされたファイルのディスクリプタではない。
248 が書き込み可能なファイルディスクリプタでない。
253 .\"O and this lock operation would cause a deadlock.
256 であり、このロック操作を行うとデッドロックが発生してしまう。
259 .\"O An invalid operation was specified in
265 .\"O Too many segment locks open, lock table is full.
266 非常に多くのセグメントロックが開かれ、ロックテーブルが一杯である。
267 .\"O .SH CONFORMING TO
278 .\"O .I mandatory-locking.txt
279 .\"O in the kernel source directory
280 .\"O .IR Documentation/filesystems .
281 .\"O (On older kernels, these files are directly under the
282 .\"O .I Documentation/
284 .\"O .I mandatory-locking.txt
286 .\"O .IR mandatory.txt .)
291 .I Documentation/filesystems
295 .I mandatory-locking.txt
299 .I mandatory-locking.txt