diff options
author | Jun Kuriyama <kuriyama@FreeBSD.org> | 1999-12-09 16:26:08 +0000 |
---|---|---|
committer | Jun Kuriyama <kuriyama@FreeBSD.org> | 1999-12-09 16:26:08 +0000 |
commit | fc733ebccd935f71847e984f7691cdf46bad1e2f (patch) | |
tree | 15a3aa8b127751e34c620d1cd25cfe96e51196f0 /ja_JP.eucJP/man/man3/lockf.3 | |
parent | ca3c96828b56676e323311ef49683d7bc8e603d3 (diff) | |
download | doc-fc733ebccd935f71847e984f7691cdf46bad1e2f.tar.gz doc-fc733ebccd935f71847e984f7691cdf46bad1e2f.zip |
Japanese version of section 3 manual pages based on 3.1-RELEASE.
This section is based on catpages contributed by Mainichi
Communications, Inc.
Translated by: MYCOM team
Converted by: Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by: Kazuo Horikawa <k-horik@yk.rim.or.jp>
Notes
Notes:
svn path=/head/; revision=6131
Diffstat (limited to 'ja_JP.eucJP/man/man3/lockf.3')
-rw-r--r-- | ja_JP.eucJP/man/man3/lockf.3 | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/ja_JP.eucJP/man/man3/lockf.3 b/ja_JP.eucJP/man/man3/lockf.3 new file mode 100644 index 0000000000..612b6a2a7a --- /dev/null +++ b/ja_JP.eucJP/man/man3/lockf.3 @@ -0,0 +1,263 @@ +.\" $NetBSD: lockf.3,v 1.2 1998/02/05 18:47:28 perry Exp $ +.\" +.\" Copyright (c) 1997 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Klaus Klein and S.P. Zeidler. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the NetBSD +.\" Foundation, Inc. and its contributors. +.\" 4. Neither the name of The NetBSD Foundation nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd December 19, 1997 +.Dt LOCKF 3 +.Os NetBSD 1.4 +.Sh 名称 +.Nm lockf +.Nd ファイル上のレコードのロック +.Sh LIBRARY +.Lb libc +.Sh 書式 +.Fd #include <unistd.h> +.Ft int +.Fn lockf "int filedes" "int function" "off_t size" +.Sh 解説 +関数 +.Fn lockf +は、ファイルのセクションを助言モードロックでロック +できます。ロックされているファイルのセクションを他のプロセセスからロック +しようとして、 +.Fn lockf +呼び出しを実行すると、当該セクションのロックが +解除されるまでエラー表示値かまたはブロックが返ってきます。ロックはプロセス +が終了するとすべて除去されます。 +.Pp +引数 +.Fa filedes +は、対象ファイルの記述子です。ファイル記述子は、 +書き込みのみ +(O_WRONLY) +、または読み込み / 書き込み両方 +(O_RDWR) のどちらかで +操作できる必要があります。引数 +.Fa function +は所要動作を定義する制御値です。 +.Fa Function +で指定できる値は次のとおりです。 +.Bl -tag -width FULCOKXX -compact -offset indent +.It Sy Function +.Sy 解説 +.It Dv F_ULOCK +ロックされているセクションのロック解除 +.It Dv F_LOCK +セクションの排他的使用のロック +.It Dv F_TLOCK +セクションの排他的使用のテストとロック +.It Dv F_TEST +セクションの他プロセスによるロック状況をテスト +.El +.Pp +.Dv F_ULOCK +は、ファイルのセクションからロックを解除します。 +.Dv F_LOCK +および +.Dv F_TLOCK +は、どちらも、セクションが使用可能状態ならばロックします。 +.Dv F_TEST +は、他プロセスが指定のセクション上にあるかどうかを検査します。 +.Pp +引数 +.Fa size +は、ロックまたはロック解除対象のバイト数を示しています。 +ロックまたはロック解除対象のセクションは、ファイル上の現在のオフセットを +開始地点とし、前方向であれば正符号の長さで、後ろ方向であれば負の長さで +表します。(現在のオフセット値を除く後続する範囲のバイト数)しかし、 +ファイルの先頭より前を開始点または対象範囲とすることはできません。 +.Fa size +が +0 の場合、セクションは現在の地点からファイル上で取りうる最大範囲の地点まで +ロックされます (すなわち、現在の地点から現時点のまたは今後拡張するファイル +の終了部分までです)。 +.Pp +.Dv F_LOCK +または +.Dv F_TLOCK +でロックされたセクションは、同一プロセスで +先行してロックされたセクションの全体または一部を含むかあるいは +含まれることがあります。この場合、またはロックされたセクションが +隣接するとき、これらのセクションは一つのロックされたセクションに +統合されます。要求によりロックの数がシステムで定めた限界を超えた場合、 +要求はエラーになります。 +.Pp +.Dv F_LOCK +および +.Dv F_TLOCK +による要求は、セクションが利用不可の +場合それぞれの取る動作について差異があります。 +.Dv F_LOCK +は、セクションが +利用可能になるまで呼び出しプロセスを抑制します。 +.Dv F_TLOCK +では、他プロセスが +既にロックしている場合、関数はエラーになります。 +.Pp +ファイルのロックは、ファイルの記述子のロックプロセスが終了して初めて +解除されます。 +.Pp +.Dv F_ULOCK +要求は、プロセスで制御される複数のロックされた +セクション(全体または一部)を解放します。ロックされたセクションは、現在の +ファイル上の地点から +.Fa size +で示す長さのバイト数分、またはサイズ指定が +0 の場合 +ファイルの終了位置まで、ロックが解除されます。ロックされたセクション +がすべて解放されないとき(すなわち、ロック解除される区域の最初の部分または +終りの部分がロックされたセクションにあるとき)、セクションの残りの部分は +プロセスにより引き続きロックされます。ロックされたセクションの中心部分を +解放することにより、ロックされた残りの部分は、先頭区域と終りの区域の +2 つの +セクションに分離されます。要求により、システム内のロックの数が、システムで +定めた制限値を越える場合、その要求の処理は不成功になります。 +.Pp +.Dv F_ULOCK +要求は、サイズ指定が +0 でなく、要求されたセクションの最終バイト +の位置が、 +off_t +型のオブジェクトに対する最大値を越えない場合、または +プロセス内にサイズ +0 のロックがあり、要求対象セクションの最終バイトを +含んでいる場合、サイズ +0 の要求対象セクションの開始位置からロック解除する +要求として扱われます。そうでない場合、 +.Dv F_ULOCK +要求は、要求対象のセクション +だけをロック解除しようとします。 +.Pp +ロックされている区域を制御しているプロセスが、他プロセスでロック +されている区域をロックしようとしてスリープ状態になると、デッドロックが +起こる可能性があります。この仕組みにより、ロックされた区域が +ロック解除されるまでのスリープがデッドロックを起こし、 +.Er EDEADLK +エラーで異常終了することを検出できます。 +.Pp +.XX lockf , +.Xr fcntl 2 +および +.Xr flock 2 +によるロックは同時併行で問題なく +使用できます。セクションでの防護処理は適当なシグナルで解釈されます。 +.Pp +.Sh 戻り値 +正常実行の場合、 +.Fn lockf +は 0 を返します。 +そうでない場合は -1 を返し、エラー内容を示す表示を +.Dv errno +に設定し、現存のロックは変更されません。 +.Pp +.Sh エラー +.Fn lockf +は、次の状態のとき不成功となります。 +.Bl -tag -width Er +.It Bq Er EAGAIN +引数 +.Fa function +は、 +.Dv F_TLOCK +または +.Dv F_TEST +であり、 +セクションはすでに他のプロセスによりロックされています。 +.It Bq Er EBADF +引数 +.Fa filedes +は妥当でない対象ファイル記述子です。 +引数 +.Fa function +.Dv F_TLOCK +または +.Dv F_TEST +であり、引数 +.Fa filedes +は書き込み可能ファイルとして妥当なファイル記述子ではありません。 +.Pp +.It Bq Er EDEADLK +引数 +.Fa function +は +.Dv F_LOCK +であり、デッドロックが検出されました。 +.Pp +.It Bq Er EINTR +引数 +.Fa function +は +.Dv F_LOCK +であり、 +.Fn lockf +がシグナル発生により中断されました。 +.Pp +.It Bq Er EINVAL +引数 +.Fa function +が +.Dv F_ULOCK , +.Dv F_LOCK , +.Dv F_TLOCK , +or +.Dv F_TEST +のどれにも該当しません。 +.Pp +引数 +.Fa filedes +がロックをサポートしないファイルを示しています。 +.Pp +.It Bq Er ENOLCK +引数 +.Fa function +は +.Dv F_ULOCK , +.Dv F_LOCK , +または +.Dv F_TLOCK +であり、 +ロックまたはロック解除の要求により、 +ロック区域の数がシステムで定めた +制限値を越えます。 +.Pp +.Sh 関連項目 +.Xr fcntl 2 , +.Xr flock 2 +.Pp +.Sh 規格 +.Fn lockf +関数は +.St -xpg4.2 +に準拠しています。 |