OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man2 / shmget.2
index 9ecc1d1..90cedfa 100644 (file)
 .\"    Language and formatting clean-ups
 .\"    Added notes on /proc files
 .\"
-.\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
-.\"         all rights reserved.
-.\" Translated 1997-03-01, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
-.\" Updated & Modified 2001-06-03, Yuichi SATO <ysato@h4.dion.ne.jp>
-.\" Updated 2001-12-22, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2002-10-16, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2003-02-23, Kentaro Shirakata <argrath@ub32.org>
-.\" Updated 2005-03-02, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2005-11-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36
+.\"*******************************************************************
 .\"
-.\"WORD:       shared memory           共有メモリ
-.\"WORD:       segment                 セグメント
-.\"WORD:       owner                   所有者
-.\"WORD:       group                   グループ
-.\"WORD:       world                   他人
-.\"WORD:       creator                 作成者
-.\"WORD:       super-user              スーパー・ユーザー
-.\"WORD:       detach                  分離
-.\"WORD:       attach                  付加
-.\"WORD:       identifier              識別子
-.\"WORD:       member                  メンバー
-.\"WORD:       effective user ID       実効ユーザーID
-.\"WORD:       effective group ID      実効グループID
-.\"WORD:       policy                  方針
-.\"WORD:       implement               実装
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH SHMGET 2 2006-05-02 "Linux" "Linux Programmer's Manual"
+.\"*******************************************************************
+.TH SHMGET 2 2006\-05\-02 Linux "Linux Programmer's Manual"
 .SH 名前
 shmget \- 共有メモリ・セグメントを割り当てる
 .SH 書式
 .ad l
-.B #include <sys/ipc.h>
+\fB#include <sys/ipc.h>\fP
 .br
-.B #include <sys/shm.h>
+\fB#include <sys/shm.h>\fP
 .sp
-.BI "int shmget(key_t " key ", size_t " size ", int " shmflg );
+\fBint shmget(key_t \fP\fIkey\fP\fB, size_t \fP\fIsize\fP\fB, int \fP\fIshmflg\fP\fB);\fP
 .ad b
 .SH 説明
-.BR shmget ()
-は
-.I key
-引き数に対応する共有メモリ・セグメントの識別子を返す。
-.I key
-の値が
-.B IPC_PRIVATE
-の場合、もしくは
-.I key
-に対応する共有メモリ・セグメントが存在せず、
-.I shmflg
-に
-.B IPC_CREAT
-が指定されていた場合、
-新しい共有メモリ・セグメントを作成する。
-作成される共有メモリ・セグメントは、
-.I size
-引き数の値を
-.B PAGE_SIZE
+\fBshmget\fP()  は \fIkey\fP 引き数に対応する共有メモリ・セグメントの識別子を返す。 \fIkey\fP の値が \fBIPC_PRIVATE\fP
+の場合、もしくは \fIkey\fP に対応する共有メモリ・セグメントが存在せず、 \fIshmflg\fP に \fBIPC_CREAT\fP が指定されていた場合、
+新しい共有メモリ・セグメントを作成する。 作成される共有メモリ・セグメントは、 \fIsize\fP 引き数の値を \fBPAGE_SIZE\fP
 の倍数へと切り上げた (round up) 大きさとなる。
 .PP
-.I shmflg
-に
-.B IPC_CREAT
-と
-.B IPC_EXCL
-の両方が指定された場合、
-.I key
-に対応する共有メモリ・セグメントが既に存在すると、
-.BR shmget ()
-は失敗し、
-.I errno
-に
-.B EEXIST
-が設定される (これは
-.BR open (2)
-に
-.B O_CREAT | O_EXCL
-を指定した場合の動作と同じである)。
+\fIshmflg\fP に \fBIPC_CREAT\fP と \fBIPC_EXCL\fP の両方が指定された場合、 \fIkey\fP
+に対応する共有メモリ・セグメントが既に存在すると、 \fBshmget\fP()  は失敗し、 \fIerrno\fP に \fBEEXIST\fP が設定される
+(これは \fBopen\fP(2)  に \fBO_CREAT | O_EXCL\fP を指定した場合の動作と同じである)。
 .PP
-.I shmflg
-は以下の内容から構成される:
-.TP 12
-.B IPC_CREAT
-新しいセグメントを作成する。このフラグが指定されなかった場合、
-.BR shmget ()
-は \fIkey\fP に対応するセグメントを探し、
+\fIshmflg\fP は以下の内容から構成される:
+.TP  12
+\fBIPC_CREAT\fP
+新しいセグメントを作成する。このフラグが指定されなかった場合、 \fBshmget\fP()  は \fIkey\fP に対応するセグメントを探し、
 ユーザがそのセグメントにアクセスする許可があるかどうかをチェックする。
-.TP
-.B IPC_EXCL
-\fBIPC_CREAT\fP と共に使用し、セグメントが既に存在した場合には
-失敗することを保証する。
-.TP
-.I mode_flags
-(下位 9 ビット)
-所有者、グループ、他人 (world) への許可を指定する。
-これらのビットは
-.BR open (2)
-の
-.I mode
-引き数と同じ形式で同じ意味を持つ。
-今のところ、システムは実行 (execute) 許可を参照しない。
-.TP
-.BR SHM_HUGETLB " (Linux 2.6 以降)"
-"ヒュージページ (huge page)" を使うセグメントを割り当てる。
-詳細な情報は、カーネル・ソースのファイル
-.I Documentation/vm/hugetlbpage.txt
-を参照。
-.TP
-.BR SHM_NORESERVE " (Linux 2.6.15 以降)"
-このフラグは、
-.BR mmap (2)
-の
-.B MAP_NORESERVE
-フラグと同じ役割を果たす。
-このセグメントに対するスワップ空間の予約を行わない。
-スワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが
-保証される。スワップ空間の予約を行わなかった場合は、物理メモリに空きが
-ないと書き込み時に
-.B SIGSEGV
-を受け取る可能性がある。
-.BR proc (5)
-にある
-.I /proc/sys/vm/overcommit_memory
-ファイルに関する議論も参照のこと。
+.TP 
+\fBIPC_EXCL\fP
+\fBIPC_CREAT\fP と共に使用し、セグメントが既に存在した場合には 失敗することを保証する。
+.TP 
+\fImode_flags\fP
+(下位 9 ビット)  所有者、グループ、他人 (world) への許可を指定する。 これらのビットは \fBopen\fP(2)  の \fImode\fP
+引き数と同じ形式で同じ意味を持つ。 今のところ、システムは実行 (execute) 許可を参照しない。
+.TP 
+\fBSHM_HUGETLB\fP (Linux 2.6 以降)
+"ヒュージページ (huge page)" を使うセグメントを割り当てる。 詳細な情報は、カーネル・ソースのファイル
+\fIDocumentation/vm/hugetlbpage.txt\fP を参照。
+.TP 
+\fBSHM_NORESERVE\fP (Linux 2.6.15 以降)
 .\" As at 2.6.17-rc2, this flag has no effect if SHM_HUGETLB was also
 .\" specified.
+このフラグは、 \fBmmap\fP(2)  の \fBMAP_NORESERVE\fP フラグと同じ役割を果たす。
+このセグメントに対するスワップ空間の予約を行わない。 スワップ空間を予約した場合は、そのセグメントの変更が必ず成功することが
+保証される。スワップ空間の予約を行わなかった場合は、物理メモリに空きが ないと書き込み時に \fBSIGSEGV\fP を受け取る可能性がある。
+\fBproc\fP(5)  にある \fI/proc/sys/vm/overcommit_memory\fP ファイルに関する議論も参照のこと。
 .PP
-共有メモリ・セグメントが新たに作成される際、
-共有メモリ・セグメントの内容は 0 で初期化され、
-関連情報を保持するデータ構造体
-.I shmid_ds
+共有メモリ・セグメントが新たに作成される際、 共有メモリ・セグメントの内容は 0 で初期化され、 関連情報を保持するデータ構造体 \fIshmid_ds\fP
 は以下のように初期化される。
 .IP
-.I shm_perm.cuid
-と
-.I shm_perm.uid
-に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。
+\fIshm_perm.cuid\fP と \fIshm_perm.uid\fP に呼び出し元プロセスの実効 (effective) ユーザーID を設定する。
 .IP
-.I shm_perm.cgid
-と
-.I shm_perm.gid
-に呼び出し元プロセスの実効グループID を設定する。
+\fIshm_perm.cgid\fP と \fIshm_perm.gid\fP に呼び出し元プロセスの実効グループID を設定する。
 .IP
-.I shm_perm.mode
-の下位 9 ビットに
-.I shmflg
-の下位 9 ビットを設定する。
+\fIshm_perm.mode\fP の下位 9 ビットに \fIshmflg\fP の下位 9 ビットを設定する。
 .IP
-.I shm_segsz
-に
-.I size
-の値を設定する。
+\fIshm_segsz\fP に \fIsize\fP の値を設定する。
 .IP
-.IR shm_lpid ,
-.IR shm_nattch ,
-.IR shm_atime ,
-.I shm_dtime
-に 0 を設定する。
+\fIshm_lpid\fP, \fIshm_nattch\fP, \fIshm_atime\fP, \fIshm_dtime\fP に 0 を設定する。
 .IP
-.I shm_ctime
-に現在の時刻を設定する。
+\fIshm_ctime\fP に現在の時刻を設定する。
 .PP
-共有メモリ・セグメントが既に存在する場合、アクセス許可の検査と、
-破壊 (destruction) マークがつけられていないかのチェックが行われる。
+共有メモリ・セグメントが既に存在する場合、アクセス許可の検査と、 破壊 (destruction) マークがつけられていないかのチェックが行われる。
 .SH 返り値
-成功した場合、有効なセグメント識別子
-.I shmid
-が返される。エラーの場合、 \-1 が返される。
+成功した場合、有効なセグメント識別子 \fIshmid\fP が返される。エラーの場合、 \-1 が返される。
 .SH エラー
-失敗した場合は
-.I errno
-が以下のどれかに設定される:
-.TP
-.B EACCES
-ユーザーはその共有メモリ・セグメントへのアクセス許可を持たず、
-.B CAP_IPC_OWNER
-ケーパビリティも持っていない。
-.TP
-.B EEXIST
-.B IPC_CREAT | IPC_EXCL
-が指定されていたが、そのセグメントが既に存在する。
-.TP
-.B EINVAL
-新しいセグメントを作成しようとした際に
-\fIsize\fP < \fBSHMMIN\fP または \fIsize\fP > \fBSHMMAX\fP であった。
-もしくは、指定されたキーに対応するセグメントが既に存在して、新しい
-セグメントを作成しようとはしなかったが、\fIsize\fP が存在するセグメントの
-サイズよりも大きかった。
-.TP
-.B ENFILE
+失敗した場合は \fIerrno\fP が以下のどれかに設定される:
+.TP 
+\fBEACCES\fP
+ユーザーはその共有メモリ・セグメントへのアクセス許可を持たず、 \fBCAP_IPC_OWNER\fP ケーパビリティも持っていない。
+.TP 
+\fBEEXIST\fP
+\fBIPC_CREAT | IPC_EXCL\fP が指定されていたが、そのセグメントが既に存在する。
+.TP 
+\fBEINVAL\fP
+新しいセグメントを作成しようとした際に \fIsize\fP < \fBSHMMIN\fP または \fIsize\fP > \fBSHMMAX\fP
+であった。 もしくは、指定されたキーに対応するセグメントが既に存在して、新しい セグメントを作成しようとはしなかったが、\fIsize\fP
+が存在するセグメントの サイズよりも大きかった。
+.TP 
+\fBENFILE\fP
 .\" [2.6.7] shmem_zero_setup()-->shmem_file_setup()-->get_empty_filp()
 システム全体でオープンされているファイルの総数が上限に達した。
-.TP
-.B ENOENT
-指定された \fIkey\fP に対応するセグメントが存在せず、
-.B IPC_CREAT
-も指定されていなかった。
-.TP
-.B ENOMEM
+.TP 
+\fBENOENT\fP
+指定された \fIkey\fP に対応するセグメントが存在せず、 \fBIPC_CREAT\fP も指定されていなかった。
+.TP 
+\fBENOMEM\fP
 セグメントの管理情報 (overhead) に割り当てるメモリがなかった。
-.TP
-.B ENOSPC
-.\" motoki 2005-03-02 -- SHMMNI の意味を考慮して意訳
-システム全体の共有メモリ・セグメント数の制限
-.RB ( SHMMNI )
-に達した、または要求された
-.I size
-のセグメントの割り当てが
-システム全体の共有メモリサイズの制限
-.RB ( SHMALL )
-を超過した。
-.TP
-.B EPERM
-.B SHM_HUGETLB
-フラグが指定されたが、呼び出し元には権限がなかった
-.RB ( CAP_IPC_LOCK
-ケーパビリティを持っていなかった)。
+.TP 
+\fBENOSPC\fP
+システム全体の共有メモリ・セグメント数の制限 (\fBSHMMNI\fP)  に達した、または要求された \fIsize\fP のセグメントの割り当てが
+システム全体の共有メモリサイズの制限 (\fBSHMALL\fP)  を超過した。
+.TP 
+\fBEPERM\fP
+\fBSHM_HUGETLB\fP フラグが指定されたが、呼び出し元には権限がなかった (\fBCAP_IPC_LOCK\fP ケーパビリティを持っていなかった)。
 .SH 準拠
-SVr4, POSIX.1-2001.
-.\" SVr4 には追加で EEXIST エラー状態の記述がある。
+.\" SVr4 documents an additional error condition EEXIST.
+SVr4, POSIX.1\-2001.
 
-.B SHM_HUGETLB
-は Linux での拡張であり、移植性はない。
+\fBSHM_HUGETLB\fP は Linux での拡張であり、移植性はない。
 .SH 注意
-.B IPC_PRIVATE
-はフラグではなく
-.I key_t
-型である。
-この特別な値が
-.I key
-に使用された場合は、
-.BR shmget ()
-は
-.I shmflg
-の下位 9 ビットを除いた全てを無視し、
-(成功すれば) 新しい共有メモリ・セグメントを作成する。
+\fBIPC_PRIVATE\fP はフラグではなく \fIkey_t\fP 型である。 この特別な値が \fIkey\fP に使用された場合は、 \fBshmget\fP()
+は \fIshmflg\fP の下位 9 ビットを除いた全てを無視し、 (成功すれば) 新しい共有メモリ・セグメントを作成する。
 .PP
-.BR shmget ()
-コールに影響する共有メモリ・セグメント資源の制限は以下の通りである:
-.TP
-.B SHMALL
-システム全体の共有メモリ・ページの最大数
-(Linux では、この上限値は
-.I /proc/sys/kernel/shmall
+\fBshmget\fP()  コールに影響する共有メモリ・セグメント資源の制限は以下の通りである:
+.TP 
+\fBSHMALL\fP
+システム全体の共有メモリ・ページの最大数 (Linux では、この上限値は \fI/proc/sys/kernel/shmall\fP
 経由で参照したり、変更したりできる)。
-.TP
-.B SHMMAX
-共有メモリ・セグメントのバイト単位の大きさの上限: 方針依存
-(Linux では、この上限値は
-.I /proc/sys/kernel/shmmax
+.TP 
+\fBSHMMAX\fP
+共有メモリ・セグメントのバイト単位の大きさの上限: 方針依存 (Linux では、この上限値は \fI/proc/sys/kernel/shmmax\fP
 経由で参照したり、変更したりできる)。
-.TP
-.B SHMMIN
-共有メモリ・セグメントのバイト単位の大きさの下限: 実装依存
-(現在は 1 バイトだが、実質的な最小サイズは
-.B PAGE_SIZE
-である)。
-.TP
-.B SHMMNI
-システム全体の共有メモリーの数の上限: 実装依存
-(現在は 4096。Linux 2.3.99 より前では 128。
-Linux では、この上限値は
-.I /proc/sys/kernel/shmmni
-経由で参照したり、変更したりできる)。
-.\" 2.4.x と 2.6.8 の間のカーネルには、SHMMNI より一つの多くの
-.\" セグメントを作成できるというバグがあった。
-.\" この /proc ファイルは Linux 2.2 以前では利用できない -- MTK
+.TP 
+\fBSHMMIN\fP
+共有メモリ・セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだが、実質的な最小サイズは \fBPAGE_SIZE\fP である)。
+.TP 
+\fBSHMMNI\fP
+.\" Kernels between 2.4.x and 2.6.8 had an off-by-one error that meant
+.\" that we could create one more segment than SHMMNI -- MTK
+.\" This /proc file is not available in Linux 2.2 and earlier -- MTK
+システム全体の共有メモリーの数の上限: 実装依存 (現在は 4096。Linux 2.3.99 より前では 128。 Linux では、この上限値は
+\fI/proc/sys/kernel/shmmni\fP 経由で参照したり、変更したりできる)。
 .PP
-プロセス当りの共有メモリ・セグメントの個数の最大値
-.RB ( SHMSEG )
-に関する実装上の制限はない。
-.SS Linux での注意
-バージョン 2.3.30 までは、Linux は
-削除が予定されている共有メモリ・セグメントに対して
-.BR shmget ()
-が行われると
-.B EIDRM
-を返していた。
+プロセス当りの共有メモリ・セグメントの個数の最大値 (\fBSHMSEG\fP)  に関する実装上の制限はない。
+.SS "Linux での注意"
+バージョン 2.3.30 までは、Linux は 削除が予定されている共有メモリ・セグメントに対して \fBshmget\fP()  が行われると
+\fBEIDRM\fP を返していた。
 .SH バグ
-.B IPC_PRIVATE
-という名前を選んだのはおそらく失敗であろう。
-.B IPC_NEW
-の方がより明確にその機能を表しているだろう。
+\fBIPC_PRIVATE\fP という名前を選んだのはおそらく失敗であろう。 \fBIPC_NEW\fP の方がより明確にその機能を表しているだろう。
 .SH 関連項目
-.BR shmat (2),
-.BR shmctl (2),
-.BR shmdt (2),
-.BR ftok (3),
-.BR capabilities (7),
-.BR shm_overview (7),
-.BR svipc (7)
+\fBshmat\fP(2), \fBshmctl\fP(2), \fBshmdt\fP(2), \fBftok\fP(3), \fBcapabilities\fP(7),
+\fBshm_overview\fP(7), \fBsvipc\fP(7)