aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man2/semop.2
diff options
context:
space:
mode:
Diffstat (limited to 'ja_JP.eucJP/man/man2/semop.2')
-rw-r--r--ja_JP.eucJP/man/man2/semop.2277
1 files changed, 0 insertions, 277 deletions
diff --git a/ja_JP.eucJP/man/man2/semop.2 b/ja_JP.eucJP/man/man2/semop.2
deleted file mode 100644
index 66047ba45d..0000000000
--- a/ja_JP.eucJP/man/man2/semop.2
+++ /dev/null
@@ -1,277 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" All rights reserved.
-.\"
-.\" 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.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" %FreeBSD: src/lib/libc/sys/semop.2,v 1.18 2003/01/25 21:27:37 alfred Exp %
-.\"
-.\" WORD: atomic 不可分な [POSIX]
-.\" WORD: adjust on exit 終了時調整
-.\" $FreeBSD$
-.Dd September 22, 1995
-.Dt SEMOP 2
-.Os
-.Sh 名称
-.Nm semop
-.Nd セマフォ集合に対する不可分な操作の配列
-.Sh ライブラリ
-.Lb libc
-.Sh 書式
-.In sys/types.h
-.In sys/ipc.h
-.In sys/sem.h
-.Ft int
-.Fn semop "int semid" "struct sembuf *array" "size_t nops"
-.Sh 解説
-.Fn semop
-システムコールは、
-.Fa semid
-が示すセマフォ集合に対して、
-.Fa array
-が示す操作の配列を不可分に実行します。
-.Fa array
-の長さは
-.Fa nops
-で示します。
-各操作は
-.Vt "struct sembuf"
-内にエンコードされており、
-.Fa "struct sembuf"
-は次のように定義されます:
-.Bd -literal
-.\"
-.\" From <sys/sem.h>
-.\"
-struct sembuf {
- u_short sem_num; /* セマフォ番号 */
- short sem_op; /* セマフォ操作 */
- short sem_flg; /* 操作フラグ */
-};
-.Ed
-.Pp
-.Fa array
-内の各要素に関し、
-.Va sem_op
-と
-.Va sem_flg
-は、集合内のセマフォ番号
-.Va sem_num
-に対して実行される操作を決定します。
-指定した操作の動作を変更するために、
-.Dv SEM_UNDO
-と
-.Dv IPC_NOWAIT
-の値の論理和 (
-.Em OR
-) を取って
-.Va sem_flg
-メンバに入れることが可能です。
-.Pp
-実行される操作は次のように
-.Va sem_op
-の値に依存します:
-.\"
-.\" This section is based on the description of semop() in
-.\" Stevens, _Advanced Programming in the UNIX Environment_,
-.\" and the semop(2) description in The Open Group Unix2 specification.
-.\"
-.Bl -bullet
-.It
-.Va sem_op
-が正であり、プロセスが別のパーミッションを持っている場合、セマフォの値を
-.Va sem_op
-の値だけ増加させます。
-.Dv SEM_UNDO
-を指定した場合、セマフォの終了時調整値を
-.Va sem_op
-の値だけ減少させます。
-.Va sem_op
-についての正の値は、一般に、
-セマフォに結び付けられた資源をリリースするプロセスに対応します。
-.It
-.Va sem_op
-が負であり、プロセスが別のパーミッション持っている場合の動作は、
-セマフォの現在の値に依存します:
-.Bl -bullet
-.It
-セマフォの現在の値が
-.Va sem_op
-の絶対値と等しいかそれより大きい場合、セマフォの値を
-.Va sem_op
-の絶対値だけ減少させます。
-.Dv SEM_UNDO
-が指定されている場合、セマフォの終了時調整値を
-.Va sem_op
-の絶対値だけ増加させます。
-.It
-セマフォの現在値が
-.Va sem_op
-の絶対値より小さい場合、次のどれかが発生します:
-.\" XXX a *second* sublist?
-.Bl -bullet
-.It
-.Dv IPC_NOWAIT
-を指定した場合、
-.Fn semop
-は戻り値
-.Er EAGAIN
-でただちに復帰します。
-.It
-それ以外の場合、呼び出し元プロセスは、以下の条件の 1 つが満足されるまで
-休眠状態になります:
-.\" XXX We already have two sublists, why not a third?
-.Bl -bullet
-.It
-.Xr semctl 2
-の
-.Dv IPC_RMID
-オプションを用いて、他のプロセスがセマフォを削除した場合。
-この時
-.Fn semop
-は、戻り値
-.Er EIDRM
-でただちに復帰します。
-.It
-プロセスが、捕らえるべきシグナルを受け取った場合。
-この時そのプロセスは、
-.Xr sigaction 2
-で定義されたように実行を再開します。
-.It
-セマフォの値が
-.Va sem_op
-の絶対値以上になった場合。
-この条件が真となった時、セマフォの値を
-.Va sem_op
-の絶対値だけ減少させ、セマフォの終了時調整値を
-.Va sem_op
-の絶対値だけ増加させます。
-.El
-.El
-.El
-.Pp
-.Va sem_op
-が負の値であるときは、一般に、
-資源が利用可能になるのをプロセスが待っているということです。
-.It
-.Va sem_op
-が 0 でプロセスが読取り許可を持つ場合、次のどれかが発生します:
-.Bl -bullet
-.It
-現在のセマフォの値が 0 の場合、
-.Fn semop
-はただちに復帰します。
-.It
-.Dv IPC_NOWAIT
-が指定された場合、
-.Fn semop
-は戻り値
-.Er EAGAIN
-でただちに復帰します。
-.It
-それ以外の場合、呼び出し元プロセスは、以下の条件の 1 つが満足されるまで
-休眠状態になります:
-.\" XXX Another nested sublists
-.Bl -bullet
-.It
-.Xr semctl 2
-の
-.Dv IPC_RMID
-オプションを用いて、他のプロセスがセマフォを削除した場合。
-この時
-.Fn semop
-は、戻り値
-.Er EIDRM
-でただちに復帰します。
-.It
-プロセスが、捕らえるべきシグナルを受け取った場合。
-この時そのプロセスは、
-.Xr sigaction 2
-で定義されたように実行を再開します。
-.It
-セマフォの値が 0 となった場合。
-.El
-.El
-.El
-.Pp
-プロセスが使用しているセマフォごとに、カーネルは、先に述べたように
-.Dq 終了時調整
-値を保持します。
-自発的であれ非自発的にであれ、プロセスが終了するときには、
-各セマフォに対する終了時調整値がセマフォの値に追加されます。
-これを、プロセスが予期せず終了してしまう場合に
-資源を必ず解放することを保証するのに使用可能です。
-.Sh 戻り値
-.Rv -std semop
-.Sh エラー
-.Fn semop
-システムコールは次の場合に失敗します:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-.Fa semid
-に対応するセマフォ集合がないか、システムで定義されるプロセス毎の
-.Dv SEM_UNDO
-構造体の数の制限が超過しました。
-.It Bq Er EACCES
-操作とセマフォ集合のモードの間で不一致があるため、
-パーミッションが拒否されました。
-.It Bq Er EAGAIN
-セマフォはそのプロセスを休眠状態に移行させる値ですが、
-.Dv IPC_NOWAIT
-が指定されました。
-.It Bq Er E2BIG
-あまりに多くの操作が指定されました。
-.Bq Dv SEMOPM
-.It Bq Er EFBIG
-.\"
-.\" I'd have thought this would be EINVAL, but the source says
-.\" EFBIG.
-.\"
-.Va sem_num
-が集合に対する有効なセマフォの範囲内にありませんでした。
-.It Bq Er EIDRM
-セマフォの組は、システムから削除されました。
-.It Bq Er EINTR
-.Fn semop
-システムコールは、シグナルによって中断されました。
-.It Bq Er ENOSPC
-システムの
-.Dv SEM_UNDO
-プール
-.Bq Dv SEMMNU
-が、いっぱいになりました。
-.It Bq Er ERANGE
-要求された操作によって、現在のセマフォの値
-.Bq Dv SEMVMX
-、もしくはその終了時調整値
-.Bq Dv SEMAEM
-が、システムによって課されている限界を越えようとしています。
-.El
-.Sh 関連項目
-.Xr semctl 2 ,
-.Xr semget 2 ,
-.Xr sigaction 2
-.Sh バグ
-.Fn semop
-システムコールは、
-.Dv IPC_NOWAIT
-が指定されていてもメモリ待ちでブロックすることがあります。