OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / semget.2
index 0a0b8c4..bf1d25d 100644 (file)
 .\"    Rewrote BUGS note about semget()'s failure to initialize
 .\"            semaphore values
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated 2003-04-08, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-03-01, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-07-20, Akihiro MOTOKI, LDP v2.36
+.\"*******************************************************************
 .\"
-.\"WORD:       semaphore               セマフォ
-.\"WORD:       identifier              識別子
-.\"WORD:       owner                   所有者
-.\"WORD:       group                   グループ
-.\"WORD:       other                   他人
-.\"WORD:       effective user ID       実効ユーザー ID
-.\"WORD:       effective group ID      実効グループ ID
-.\"WORD:       calling process         呼び出し元のプロセス
-.\"WORD:       process                 プロセス
-.\"WORD:       policy                  方針
-.\"WORD:       structure               構造体
-.\"WORD:       initialize              初期化
-.\"WORD:       system call             システム・コール
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH SEMGET 2 2004-05-27 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH SEMGET 2 2004\-05\-27 Linux "Linux Programmer's Manual"
 .SH 名前
 semget \- セマフォ集合の識別子を取得する
 .SH 書式
 .nf
-.B #include <sys/types.h>
-.B #include <sys/ipc.h>
-.B #include <sys/sem.h>
+\fB#include <sys/types.h>\fP
+\fB#include <sys/ipc.h>\fP
+\fB#include <sys/sem.h>\fP
 .fi
 .sp
-.BI "int semget(key_t " key ,
-.BI "int " nsems ,
-.BI "int " semflg );
+\fBint semget(key_t \fP\fIkey\fP\fB,\fP \fBint \fP\fInsems\fP\fB,\fP \fBint \fP\fIsemflg\fP\fB);\fP
 .SH 説明
-.BR semget ()
-システムコールは、引き数
-.I key
-に対応するセマフォ集合 (semaphore set) の
-識別子 (identifier) を返す。
-.I key
-の値が
-.B IPC_PRIVATE
-の場合、もしくは
-.I semflg
-に
-.B IPC_CREAT
-が指定されていて、
-.I key
-に対応するセマフォ集合が存在しない場合、
-.I nsems
+\fBsemget\fP()  システムコールは、引き数 \fIkey\fP に対応するセマフォ集合 (semaphore set) の 識別子
+(identifier) を返す。 \fIkey\fP の値が \fBIPC_PRIVATE\fP の場合、もしくは \fIsemflg\fP に
+\fBIPC_CREAT\fP が指定されていて、 \fIkey\fP に対応するセマフォ集合が存在しない場合、 \fInsems\fP
 個のセマフォからなる新しい集合が作成される。
 .PP
-.I semflg
-に
-.B IPC_CREAT
-と
-.B IPC_EXCL
-の両方が指定された場合、
-.I key
-に対応するセマフォ集合が既に存在すると、
-.BR semget ()
-は失敗し、
-.I errno
-に
-.B EEXIST
-が設定される
-(これは
-.BR open (2)
-に
-.B O_CREAT | O_EXCL
-が指定された場合の動作と同じである)。
+\fIsemflg\fP に \fBIPC_CREAT\fP と \fBIPC_EXCL\fP の両方が指定された場合、 \fIkey\fP
+に対応するセマフォ集合が既に存在すると、 \fBsemget\fP()  は失敗し、 \fIerrno\fP に \fBEEXIST\fP が設定される (これは
+\fBopen\fP(2)  に \fBO_CREAT | O_EXCL\fP が指定された場合の動作と同じである)。
 .PP
-セマフォ集合作成時に、引き数
-.I semflg
-の下位 9 ビットは、そのセマフォ集合の (所有者 (owner)、グループ (group)、
-他人 (others) に対する) アクセス許可の定義として使用される。
-これらのビットは
-.BR open (2)
-の引き数
-.I mode
-と同じ形式で同じ意味である
-(但し、実行 (execute) 許可はセマフォでは意味を持たず、
-書き込み (write) 許可はセマフォ値の変更 (alter) 許可として機能する)。
+セマフォ集合作成時に、引き数 \fIsemflg\fP の下位 9 ビットは、そのセマフォ集合の (所有者 (owner)、グループ (group)、 他人
+(others) に対する) アクセス許可の定義として使用される。 これらのビットは \fBopen\fP(2)  の引き数 \fImode\fP
+と同じ形式で同じ意味である (但し、実行 (execute) 許可はセマフォでは意味を持たず、 書き込み (write) 許可はセマフォ値の変更
+(alter) 許可として機能する)。
 .PP
-新しく作成されたセマフォ集合の各セマフォの値は不定である
-(この点は POSIX.1-2001 に明記されている)。
-Linux は他の多くの実装と同様にセマフォ値を 0 に初期化するが、
-移植性を考慮したアプリケーションではこの動作を前提にすべきではない。
-アプリケーションは明示的にセマフォを希望の値で初期化すべきである。
 .\" In truth, every one of the many implementations that I've tested sets
 .\" the values to zero, but I suppose there is/was some obscure
 .\" implementation out there that does not.
+新しく作成されたセマフォ集合の各セマフォの値は不定である (この点は POSIX.1\-2001 に明記されている)。 Linux
+は他の多くの実装と同様にセマフォ値を 0 に初期化するが、 移植性を考慮したアプリケーションではこの動作を前提にすべきではない。
+アプリケーションは明示的にセマフォを希望の値で初期化すべきである。
 .PP
-新規のセマフォ集合を作成する際、
-.BR semget ()
-はセマフォ集合の情報を保持するデータ構造体
-.I semid_ds
-を次のように初期化する
-.RI ( semid_ds
-については
-.BR semctl (2)
-を参照):
+新規のセマフォ集合を作成する際、 \fBsemget\fP()  はセマフォ集合の情報を保持するデータ構造体 \fIsemid_ds\fP を次のように初期化する
+(\fIsemid_ds\fP については \fBsemctl\fP(2)  を参照):
 .IP
-.I sem_perm.cuid
-と
-.I sem_perm.uid
-に、呼び出し元のプロセスの実効 (effective) ユーザ ID を設定する。
+\fIsem_perm.cuid\fP と \fIsem_perm.uid\fP に、呼び出し元のプロセスの実効 (effective) ユーザ ID を設定する。
 .IP
-.I sem_perm.cgid
-と
-.I sem_perm.gid
-に、呼び出し元のプロセスの実効 (effective) グループ ID を設定する。
+\fIsem_perm.cgid\fP と \fIsem_perm.gid\fP に、呼び出し元のプロセスの実効 (effective) グループ ID
+を設定する。
 .IP
-.I sem_perm.mode
-の下位 9 ビットに
-.I semflg
-の下位 9 ビットを設定する。
+\fIsem_perm.mode\fP の下位 9 ビットに \fIsemflg\fP の下位 9 ビットを設定する。
 .IP
-.I sem_nsems
-に
-.I nsems
-の値を設定する。
+\fIsem_nsems\fP に \fInsems\fP の値を設定する。
 .IP
-.I sem_otime
-に 0 を設定する。
+\fIsem_otime\fP に 0 を設定する。
 .IP
-.I sem_ctime
-に現在の時刻を設定する。
+\fIsem_ctime\fP に現在の時刻を設定する。
 .PP
-セマフォ集合の作成を行わない場合は、引き数
-.I nsems
-に (don't care を意味する) 0 を指定してもよい。
-そうでない場合は、
-.I nsems
-は 0 より大きい値でなければならず、セマフォ集合あたりのセマフォの最大数
-.RB ( SEMMSL )
-以下でなければならない。
+セマフォ集合の作成を行わない場合は、引き数 \fInsems\fP に (don't care を意味する) 0 を指定してもよい。 そうでない場合は、
+\fInsems\fP は 0 より大きい値でなければならず、セマフォ集合あたりのセマフォの最大数 (\fBSEMMSL\fP)  以下でなければならない。
 .PP
+.\" and a check is made to see if it is marked for destruction.
 セマフォ集合が既に存在した場合は、アクセス許可の検査が行われる。
-.\" 破壊 (destruction) マークがないかチェックされる。
 .SH 返り値
-成功した場合、セマフォ集合の識別子 (非負の整数) が返り値となる。
-失敗した場合は \-1 が返され、
-.I errno
-にエラーを示す値が設定される。
+成功した場合、セマフォ集合の識別子 (非負の整数) が返り値となる。 失敗した場合は \-1 が返され、 \fIerrno\fP にエラーを示す値が設定される。
 .SH エラー
-失敗した場合、
-.I errno
-には以下の値のいずれか一つが設定される:
-.TP
-.B EACCES
-.I key
-に対応するセマフォ集合は存在するが、
-呼び出し元のプロセスはその集合へのアクセス許可がなく、
-.B CAP_IPC_OWNER
+失敗した場合、 \fIerrno\fP には以下の値のいずれか一つが設定される:
+.TP 
+\fBEACCES\fP
+\fIkey\fP に対応するセマフォ集合は存在するが、 呼び出し元のプロセスはその集合へのアクセス許可がなく、 \fBCAP_IPC_OWNER\fP
 ケーパビリティも持っていない。
-.TP
-.B EEXIST
-.I key
-に対応するセマフォ集合が存在し、
-.I semflg
-には
-.B IPC_CREAT
-と
-.B IPC_EXCL
-が指定されていた。
+.TP 
+\fBEEXIST\fP
 .\" .TP
 .\" .B EIDRM
-.\" セマフォ集合に削除 (delete) マークがつけられている。
-.TP
-.B EINVAL
-.I nsems
-が 0 より小さいか、セマフォ集合あたりのセマフォの最大数
-.RB ( SEMMSL )
-より大きい。
-または、
-.I key
-に対応するセマフォ集合が既に存在し、
-.I nsems
-がその集合のセマフォ数よりも大きい。
-.TP
-.B ENOENT
-.I key
-に対応するセマフォ集合が存在せず、
-.I semflg
-に
-.B IPC_CREAT
-が指定されてもいない。
-.TP
-.B ENOMEM
-セマフォ集合を作成しようとしたが、新しいデータ構造体を
-作成するのに十分なメモリがシステムに存在しない。
-.TP
-.B ENOSPC
-セマフォ集合を作成しようとすると、システムのセマフォ集合の
-最大数
-.RB ( SEMMNI )
-か、システム全体のセマフォの最大数
-.RB ( SEMMNS )
+.\" The semaphore set is marked to be deleted.
+\fIkey\fP に対応するセマフォ集合が存在し、 \fIsemflg\fP には \fBIPC_CREAT\fP と \fBIPC_EXCL\fP が指定されていた。
+.TP 
+\fBEINVAL\fP
+\fInsems\fP が 0 より小さいか、セマフォ集合あたりのセマフォの最大数 (\fBSEMMSL\fP)  より大きい。 または、 \fIkey\fP
+に対応するセマフォ集合が既に存在し、 \fInsems\fP がその集合のセマフォ数よりも大きい。
+.TP 
+\fBENOENT\fP
+\fIkey\fP に対応するセマフォ集合が存在せず、 \fIsemflg\fP に \fBIPC_CREAT\fP が指定されてもいない。
+.TP 
+\fBENOMEM\fP
+セマフォ集合を作成しようとしたが、新しいデータ構造体を 作成するのに十分なメモリがシステムに存在しない。
+.TP 
+\fBENOSPC\fP
+セマフォ集合を作成しようとすると、システムのセマフォ集合の 最大数 (\fBSEMMNI\fP)  か、システム全体のセマフォの最大数 (\fBSEMMNS\fP)
 のいずれかを超えてしまう。
 .SH 準拠
-SVr4, POSIX.1-2001.
-.\" SVr4 には、追加で EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT
-.\" のエラー状態についての記述がある。
+.\" SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN,
+.\" ERANGE, EFAULT.
+SVr4, POSIX.1\-2001.
 .SH 注意
-.B IPC_PRIVATE
-はフラグ・フィールドに指定するものではなく、
-.I key_t
-型である。
-この特別な値が
-.I key
-に指定されると、
-.BR semget ()
-.I semflg
-の下位 9 ビット以外は全て無視し、
-(成功した場合は) 新しいセマフォ集合を作成する。
+\fBIPC_PRIVATE\fP はフラグ・フィールドに指定するものではなく、 \fIkey_t\fP 型である。 この特別な値が \fIkey\fP に指定されると、
+\fBsemget\fP()  \fIsemflg\fP の下位 9 ビット以外は全て無視し、 (成功した場合は) 新しいセマフォ集合を作成する。
 .PP
-セマフォ集合のリソースに関する制限のうち、
-.BR semget ()
-に影響を及ぼすものを以下に挙げる:
-.TP
-.B SEMMNI
-システム全体のセマフォ集合の最大数: 方針依存
-(Linux では、この制限値は
-.I /proc/sys/kernel/sem
+セマフォ集合のリソースに関する制限のうち、 \fBsemget\fP()  に影響を及ぼすものを以下に挙げる:
+.TP 
+\fBSEMMNI\fP
+.\" This /proc file is not available in Linux 2.2 and earlier -- MTK
+システム全体のセマフォ集合の最大数: 方針依存 (Linux では、この制限値は \fI/proc/sys/kernel/sem\fP
 の第4フィールドに対応し、読み出しも変更もできる)。
-.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK
-.TP
-.B SEMMSL
-semid あたりのセマフォの最大数: 実装依存
-(Linux では、この制限値は
-.I /proc/sys/kernel/sem
+.TP 
+\fBSEMMSL\fP
+semid あたりのセマフォの最大数: 実装依存 (Linux では、この制限値は \fI/proc/sys/kernel/sem\fP
 の第1フィールドに対応し、読み出しも変更もできる)。
-.TP
-.B SEMMNS
-システム全体のセマフォの最大数: 方針依存
-(Linux では、この制限値は
-.I /proc/sys/kernel/sem
-の第2フィールドに対応し、読み出しも変更もできる)。
-.B SEMMSL * SEMMNI
-より大きな値は意味を持たない。
+.TP 
+\fBSEMMNS\fP
+システム全体のセマフォの最大数: 方針依存 (Linux では、この制限値は \fI/proc/sys/kernel/sem\fP
+の第2フィールドに対応し、読み出しも変更もできる)。 \fBSEMMSL * SEMMNI\fP より大きな値は意味を持たない。
 .SH バグ
-.B IPC_PRIVATE
-という名前を選んだのはおそらく失敗であろう。
-.B IPC_NEW
-の方がより明確にその機能を表しているだろう。
+\fBIPC_PRIVATE\fP という名前を選んだのはおそらく失敗であろう。 \fBIPC_NEW\fP の方がより明確にその機能を表しているだろう。
 .LP
-セマフォ集合内のセマフォは
-.BR semget ()
-では初期化されない。
-.\" 実際は Linux ではセマフォは 0 に初期化されるが、
-.\" POSIX.1-2001 ではこうなることを規定している訳ではないので、
-.\" 移植を考慮するときにはこれを前提にしてはいけない。
-このセマフォを初期化するには、セマフォ集合に対して
-.BR semctl (2)
-を使って
-.B SETVAL
-か
-.B SETALL
-操作を実行する必要がある。
-(複数箇所からセマフォ集合の操作が行われる場面では、
-誰が最初に集合を初期化すればよいか分からない。
-この状況を避けるには、
-.BR semctl (2)
-の
-.B IPC_STAT
-操作で取得できるセマフォのデータ構造体の
-.I sem_otime
-が 0 以外になっているかをチェックすればよい。)
+.\" In fact they are initialized to zero on Linux, but POSIX.1-2001
+.\" does not specify this, and we can't portably rely on it.
+セマフォ集合内のセマフォは \fBsemget\fP()  では初期化されない。 このセマフォを初期化するには、セマフォ集合に対して \fBsemctl\fP(2)
+を使って \fBSETVAL\fP か \fBSETALL\fP 操作を実行する必要がある。 (複数箇所からセマフォ集合の操作が行われる場面では、
+誰が最初に集合を初期化すればよいか分からない。 この状況を避けるには、 \fBsemctl\fP(2)  の \fBIPC_STAT\fP
+操作で取得できるセマフォのデータ構造体の \fIsem_otime\fP が 0 以外になっているかをチェックすればよい。)
 .SH 関連項目
-.BR semctl (2),
-.BR semop (2),
-.BR ftok (3),
-.BR capabilities (7),
-.BR sem_overview (7),
-.BR svipc (7)
+\fBsemctl\fP(2), \fBsemop\fP(2), \fBftok\fP(3), \fBcapabilities\fP(7),
+\fBsem_overview\fP(7), \fBsvipc\fP(7)