OSDN Git Service

(split) LDP: Update draft and release for LDP 3.65
[linuxjm/LDP_man-pages.git] / release / man2 / shmget.2
index 138e02b..c5feb5d 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright (c) 1993 Luigi P. Bai (lpb@softint.com) July 28, 1993
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -19,6 +20,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified Wed Jul 28 10:57:35 1993, Rik Faith <faith@cs.unc.edu>
 .\" Modified Sun Nov 28 16:43:30 1993, Rik Faith <faith@cs.unc.edu>
 .\"    Language and formatting clean-ups
 .\"    Added notes on /proc files
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
 .\"         all rights reserved.
 .\" Translated 1997-03-01, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
 .\" 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
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-07-24, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"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               ¼ÂÁõ
-.\"
-.TH SHMGET 2 2006-05-02 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-shmget \- ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò³ä¤êÅö¤Æ¤ë
-.SH ½ñ¼°
+.TH SHMGET 2 2014\-04\-17 Linux "Linux Programmer's Manual"
+.SH 名前
+shmget \- System V 共有メモリ・セグメントを割り当てる
+.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
-¤ÎÇÜ¿ô¤Ø¤ÈÀÚ¤ê¾å¤²¤¿ (round up) Â礭¤µ¤È¤Ê¤ë¡£
+.SH 説明
+\fBshmget\fP()  は \fIkey\fP 引き数に対応する System V 共有メモリ・セグメントの識別子を返す。 \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 ¤ËÂбþ¤¹¤ë¥»¥°¥á¥ó¥È¤òõ¤·¡¢
-¥æ¡¼¥¶¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Ë¥¢¥¯¥»¥¹¤¹¤ëµö²Ä¤¬¤¢¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
-.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
-¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ëµÄÏÀ¤â»²¾È¤Î¤³¤È¡£
+\fIshmflg\fP は以下の内容から構成される:
+.TP  12
+\fBIPC_CREAT\fP
+新しいセグメントを作成する。このフラグが指定されなかった場合、 \fBshmget\fP()  は \fIkey\fP に対応するセグメントを探し、
+ユーザがそのセグメントにアクセスする許可があるかどうかをチェックする。
+.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)" を使うセグメントを割り当てる。詳細な情報は、Linux カーネルソースのファイル
+\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) ¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¥Á¥§¥Ã¥¯¤¬¹Ô¤ï¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¡¢Í­¸ú¤Ê¥»¥°¥á¥ó¥È¼±ÊÌ»Ò
-.I shmid
-¤¬ÊÖ¤µ¤ì¤ë¡£¥¨¥é¡¼¤Î¾ì¹ç¡¢ \-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
+共有メモリ・セグメントが既に存在する場合、アクセス許可の検査と、 破壊 (destruction) マークがつけられていないかのチェックが行われる。
+.SH 返り値
+成功の場合、有効な共有メモリ・セグメントの識別子が返される。 エラーの場合、 \-1 が返り、 \fIerror\fP にエラーを示す値が設定される。
+.SH エラー
+失敗した場合は \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
-¥»¥°¥á¥ó¥È¤Î´ÉÍý¾ðÊó (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
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿)¡£
-.SH ½àµò
-SVr4, POSIX.1-2001.
-.\" SVr4 ¤Ë¤ÏÄɲäǠEEXIST ¥¨¥é¡¼¾õÂ֤ε­½Ò¤¬¤¢¤ë¡£
+システム全体でオープンされているファイルの総数が上限に達した。
+.TP 
+\fBENOENT\fP
+指定された \fIkey\fP に対応するセグメントが存在せず、 \fBIPC_CREAT\fP も指定されていなかった。
+.TP 
+\fBENOMEM\fP
+セグメントの管理情報 (overhead) に割り当てるメモリがなかった。
+.TP 
+\fBENOSPC\fP
+システム全体の共有メモリ・セグメント数の制限 (\fBSHMMNI\fP)  に達した、または要求された \fIsize\fP のセグメントの割り当てが
+システム全体の共有メモリサイズの制限 (\fBSHMALL\fP)  を超過した。
+.TP 
+\fBEPERM\fP
+\fBSHM_HUGETLB\fP フラグが指定されたが、呼び出し元には権限がなかった (\fBCAP_IPC_LOCK\fP ケーパビリティを持っていなかった)。
+.SH 準拠
+.\" SVr4 documents an additional error condition EEXIST.
+SVr4, POSIX.1\-2001.
+
+\fBSHM_HUGETLB\fP は Linux での拡張であり、移植性はない。
+.SH 注意
+.\" Like Linux, the FreeBSD man pages still document
+.\" the inclusion of these header files.
+Linux や POSIX の全てのバージョンでは、 \fI<sys/types.h>\fP と \fI<sys/ipc.h>\fP
+のインクルードは必要ない。しかしながら、いくつかの古い実装ではこれらのヘッダファイルのインクルードが必要であり、 SVID
+でもこれらのインクルードをするように記載されている。このような古いシステムへの移植性を意図したアプリケーションではこれらのファイルをインクルードする必要があるかもしれない。
 
-.B SHM_HUGETLB
-¤Ï 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
-·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£
-.TP
-.B SHMMAX
-¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¥Ð¥¤¥Èñ°Ì¤ÎÂ礭¤µ¤Î¾å¸Â: Êý¿Ë°Í¸
-(Linux ¤Ç¤Ï¡¢¤³¤Î¾å¸ÂÃͤÏ
-.I /proc/sys/kernel/shmmax
-·Ðͳ¤Ç»²¾È¤·¤¿¤ê¡¢Êѹ¹¤·¤¿¤ê¤Ç¤­¤ë)¡£
-.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
+\fBshmget\fP()  コールに影響する共有メモリ・セグメント資源の制限は以下の通りである:
+.TP 
+\fBSHMALL\fP
+システム全体の共有メモリ・ページの最大数。 Linux 2.2 以降では、この上限のデフォルト値は以下である。
+
+    SHMMAX / PAGE_SIZE * (SHMMNI / 16)
+
+Assuming a 4kB page size, this formula yields (since Linux 2.4) the value
+2^20 (2,097,152).
+
+Linux では、この上限値は \fI/proc/sys/kernel/shmall\fP 経由で参照したり、変更したりできる。
+.TP 
+\fBSHMMAX\fP
+Maximum size in bytes for a shared memory segment.  Since Linux 2.2, the
+default value of this limit is 0x2000000 (32MB).
+
+Linux では、この上限値は \fI/proc/sys/kernel/shmmax\fP 経由で参照したり、変更したりできる。
+.TP 
+\fBSHMMIN\fP
+共有メモリ・セグメントのバイト単位の大きさの下限: 実装依存 (現在は 1 バイトだが、実質的な最小サイズは \fBPAGE_SIZE\fP である)。
+.TP 
+\fBSHMMNI\fP
+System wide maximum number of shared memory segments.  In Linux 2.2, the
+default value for this limit was 128; since Linux 2.4, the default value is
+4096.
+
+.\" 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
+Linux では、この上限値は \fI/proc/sys/kernel/shmmni\fP 経由で参照したり、変更したりできる。
 .PP
-¥×¥í¥»¥¹Åö¤ê¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¸Ä¿ô¤ÎºÇÂçÃÍ
-.RB ( SHMSEG )
-¤Ë´Ø¤¹¤ë¼ÂÁõ¾å¤ÎÀ©¸Â¤Ï¤Ê¤¤¡£
-.SS Linux ¤Ç¤ÎÃí°Õ
-¥Ð¡¼¥¸¥ç¥ó 2.3.30 ¤Þ¤Ç¤Ï¡¢Linux ¤Ï
-ºï½ü¤¬Í½Äꤵ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ
-.BR shmget ()
-¤¬¹Ô¤ï¤ì¤ë¤È
-.B EIDRM
-¤òÊÖ¤·¤Æ¤¤¤¿¡£
-.SH ¥Ð¥°
-.B IPC_PRIVATE
-¤È¤¤¤¦Ì¾Á°¤òÁª¤ó¤À¤Î¤Ï¤ª¤½¤é¤¯¼ºÇԤǤ¢¤í¤¦¡£
-.B IPC_NEW
-¤ÎÊý¤¬¤è¤êÌÀ³Î¤Ë¤½¤Îµ¡Ç½¤òɽ¤·¤Æ¤¤¤ë¤À¤í¤¦¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR shmat (2),
-.BR shmctl (2),
-.BR shmdt (2),
-.BR ftok (3),
-.BR capabilities (7),
-.BR shm_overview (7),
-.BR svipc (7)
+プロセス当りの共有メモリ・セグメントの個数の最大値 (\fBSHMSEG\fP)  に関する実装上の制限はない。
+.SS "Linux での注意"
+バージョン 2.3.30 までは、Linux は 削除が予定されている共有メモリ・セグメントに対して \fBshmget\fP()  が行われると
+\fBEIDRM\fP を返していた。
+.SH バグ
+\fBIPC_PRIVATE\fP という名前を選んだのはおそらく失敗であろう。 \fBIPC_NEW\fP の方がより明確にその機能を表しているだろう。
+.SH 関連項目
+\fBshmat\fP(2), \fBshmctl\fP(2), \fBshmdt\fP(2), \fBftok\fP(3), \fBcapabilities\fP(7),
+\fBshm_overview\fP(7), \fBsvipc\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。