.\" Translated Mon Feb 2 2003 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
.\" Updated 2009-02-23, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.19
.\"
-.TH SHM_OPEN 3 2009\-02\-25 Linux "Linux Programmer's Manual"
+.TH SHM_OPEN 3 2015\-01\-22 Linux "Linux Programmer's Manual"
.SH 名前
-shm_open, shm_unlink \- POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトの作成/オープン/削除を行う
+shm_open, shm_unlink \- POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトの作成/オープン/削除を行う
.SH 書式
\fB#include <sys/mman.h>\fP
.br
.sp
\fI\-lrt\fP でリンクする。
.SH 説明
-\fBshm_open\fP() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトを新規に作成/オープンしたり、 すでに存在するオブジェクトをオープンしたりする。
-POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªの同じ領域を \fBmmap\fP(2)
+\fBshm_open\fP() ã\81¯ã\80\81POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトを新規に作成/オープンしたり、 すでに存在するオブジェクトをオープンしたりする。
+POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81¯ã\80\81å®\9fé\9a\9bã\81«ã\81¯ã\80\81é\96¢ä¿\82ã\81®ã\81ªã\81\84ã\83\97ã\83ã\82»ã\82¹ã\81\8c å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼の同じ領域を \fBmmap\fP(2)
するために使用することができる手段である。 \fBshm_unlink\fP() は、逆の操作、つまり以前に \fBshm_open\fP()
で作成されたオブジェクトの削除を行う。
.LP
.\" required permissions if a user wants to create a shared memory
.\" object in that subdirectory.
\fBshm_open\fP() の動作は \fBopen\fP(2) とよく似ている。 \fIname\fP
-ã\81§ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 移æ¤\8dæ\80§ã\82\92æ\8c\81ã\81\9fã\81\9bã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは \fI/somename\fP
+ã\81§ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\82ªã\83¼ã\83\97ã\83³ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 移æ¤\8dæ\80§ã\82\92æ\8c\81ã\81\9fã\81\9bã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは \fI/somename\fP
という形式の名前で識別し、 その名前は、最大で \fBNAME_MAX\fP (すなわち 255) 文字のヌル終端された文字列で、
スラッシュで始まり、スラッシュ以外の文字が 1 文字以上続く形式 にすべきである。
.LP
を指定する。
.TP 1.1i
\fBO_RDONLY\fP
-èªã\81¿å\87ºã\81\97ã\82¢ã\82¯ã\82»ã\82¹ç\94¨ã\81«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは、 読み出し (\fBPROT_READ\fP)
+èªã\81¿å\87ºã\81\97ã\82¢ã\82¯ã\82»ã\82¹ç\94¨ã\81«ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ã\82ªã\83¼ã\83\97ã\83³ã\81\99ã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは、 読み出し (\fBPROT_READ\fP)
アクセスでのみ \fBmmap\fP(2) することができる。
.TP
\fBO_RDWR\fP
\fBO_CREAT\fP
.\" In truth it is actually the filesystem IDs on Linux, but these
.\" are nearly always the same as the effective IDs. (MTK, Jul 05)
-å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶とグループの所有権は、 呼び出し元プロセスの対応する実効 ID が使われ、
+å\98å\9c¨ã\81\97ã\81ªã\81\84å ´å\90\88ã\80\81å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8bã\80\82 ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83¦ã\83¼ã\82¶ã\83¼とグループの所有権は、 呼び出し元プロセスの対応する実効 ID が使われ、
オブジェクトの許可ビットは \fImode\fP の下位 9 ビットに基づいて設定される。ただし、 ファイルモード作成マスク (\fBumask\fP(2)
参照) に設定されている値は、新規オブジェクトに関してはクリアされる。 \fImode\fP を定義するために使用できるマクロ定数(群)は
\fBopen\fP(2) に記載されている (これらの定数のシンボル定義は \fI<sys/stat.h>\fP
のインクルードにより得られる)。
.sp
-æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトは長さ 0 で初期化される。 オブジェクトの大きさは \fBftruncate\fP(2) を使って設定できる。
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトとして新規に確保されたバイトは自動的に 0 に初期化される。
+æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトは長さ 0 で初期化される。 オブジェクトの大きさは \fBftruncate\fP(2) を使って設定できる。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトとして新規に確保されたバイトは自動的に 0 に初期化される。
.TP
\fBO_EXCL\fP
-\fBO_CREAT\fP ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 \fIname\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトが既に存在した場合、 エラーを返す。
+\fBO_CREAT\fP ã\81\8cä¸\80ç·\92ã\81«æ\8c\87å®\9aã\81\95ã\82\8cã\81¦ã\81\8aã\82\8aã\80\81 \fIname\fP ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトが既に存在した場合、 エラーを返す。
オブジェクトの存在確認と、存在しなかった場合のオブジェクト作成は、 必ず一連の操作として実行される (performed atomically)。
.TP
\fBO_TRUNC\fP
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに切り詰める。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトがすでに存在した場合、 そのオブジェクトを 0 バイトに切り詰める。
.LP
これらのフラグ値の定義は \fI<fcntl.h>\fP のインクルードにより得られる。
.LP
-æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。
-ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿の中で最も小さな数になることが保証される。
-\fBFD_CLOEXEC\fP ã\83\95ã\83©ã\82° (\fBfcntl\fP(2) ã\82\92å\8f\82ç\85§) ã\81\8cã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿に設定される。
+æ\88\90å\8a\9fã\81\97ã\81¦å®\8cäº\86ã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92å\8f\82ç\85§ã\81\99ã\82\8bæ\96°ã\81\97ã\81\84ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。
+ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81¯ã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82»ã\82¹å\86\85ã\81§é\81\8eå\8e»ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81¦ã\81\84ã\81ªã\81\84 ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼の中で最も小さな数になることが保証される。
+\fBFD_CLOEXEC\fP ã\83\95ã\83©ã\82° (\fBfcntl\fP(2) ã\82\92å\8f\82ç\85§) ã\81\8cã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼に設定される。
-é\80\9a常ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿は、この後続けて実行される \fBftruncate\fP(2) (新規に作成されたオブジェクトの場合のみ) と
-\fBmmap\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fBmmap\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿をクローズしてもよく、
-ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\82\82ã\83¡ã\83¢ã\83ªã\83»マッピングに影響を与えることはない。
+é\80\9a常ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼は、この後続けて実行される \fBftruncate\fP(2) (新規に作成されたオブジェクトの場合のみ) と
+\fBmmap\fP(2) ã\81®å\91¼ã\81³å\87ºã\81\97ã\81«ä½¿ç\94¨ã\81\95ã\82\8cã\82\8bã\80\82 \fBmmap\fP(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9få¾\8cã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼をクローズしてもよく、
+ã\82¯ã\83ã\83¼ã\82ºã\81\97ã\81¦ã\82\82ã\83¡ã\83¢ã\83ªã\83¼マッピングに影響を与えることはない。
\fBshm_unlink\fP() の動作は \fBunlink\fP(2) とよく似ている:
-å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクト名を削除し、すべてのプロセスが処理対象の オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、
-対応するメモリ領域の内容を破棄する。 \fBshm_unlink\fP() が成功した後で、同じ \fIname\fP を持つオブジェクトに対して
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクト名を削除し、すべてのプロセスが処理対象の オブジェクトをアンマップした時点でオブジェクトの割り当てを解除し、
+対応するメモリー領域の内容を破棄する。 \fBshm_unlink\fP() が成功した後で、同じ \fIname\fP を持つオブジェクトに対して
\fBshm_open\fP() を行うと、 (\fBO_CREAT\fP が指定されていない場合) 失敗する。 (\fBO_CREAT\fP
が指定されている場合、新しく別のオブジェクトが作成される)。
.SH 返り値
-æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿を返す。 失敗した場合、 \fBshm_open\fP() は \-1 を返す。
+æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88ã\80\81 \fBshm_open\fP() ã\81¯é\9d\9eè² ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼を返す。 失敗した場合、 \fBshm_open\fP() は \-1 を返す。
\fBshm_unlink\fP() は、成功した場合 0 を、エラーが起こった場合 \-1 を返す。
.SH エラー
失敗した場合、エラーの原因を示すため \fIerrno\fP が設定される。 \fIerrno\fP に設定される値は以下の通りである:
.TP
\fBEACCES\fP
-共有メモリオブジェクトを \fBshm_unlink\fP() する権限がなかった。
+å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\82\92 \fBshm_unlink\fP() ã\81\99ã\82\8b権é\99\90ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82
.TP
\fBEACCES\fP
指定された \fImode\fP で \fIname\fP を \fBshm_open\fP() する権限がなかった。もしくは、 \fBO_TRUNC\fP
.TP
\fBEEXIST\fP
\fBO_CREAT\fP と \fBO_EXCL\fP の両方が \fBshm_open\fP() に指定されたが、 \fIname\fP
-ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトが既に存在した。
+ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトが既に存在した。
.TP
\fBEINVAL\fP
\fBshm_open\fP() に与えられた \fIname\fP 引き数が不正であった。
.SH 準拠
POSIX.1\-2001.
.LP
-POSIX.1\-2001 には、新規に作成される共有メモリオブジェクトのグループ所有権は、 呼び出し元プロセスの実効グループ ID か
+POSIX.1\-2001 ã\81«ã\81¯ã\80\81æ\96°è¦\8fã\81«ä½\9cæ\88\90ã\81\95ã\82\8cã\82\8bå\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\82°ã\83«ã\83¼ã\83\97æ\89\80æ\9c\89権ã\81¯ã\80\81 å\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83ã\82»ã\82¹ã\81®å®\9få\8a¹ã\82°ã\83«ã\83¼ã\83\97 ID ã\81\8b
「システムのデフォルトのグループ ID」 のどちらかに設定される、と書かれている。
.SH 注意
.LP
POSIX は \fBO_RDONLY\fP と \fBO_TRUNC\fP が一緒に指定された場合の動作を未定義にしている。Linux では、
-æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトに対する切り詰め (truncate) は成功する。 しかし、他の UNIX システムでも同じであるとは限らない。
+æ\97¢å\98ã\81®å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトに対する切り詰め (truncate) は成功する。 しかし、他の UNIX システムでも同じであるとは限らない。
.LP
-Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83»オブジェクトの実装は 専用のファイルシステムを使用する。そのファイルシステムは通常
+Linux 2.4 ã\81«ã\81\8aã\81\91ã\82\8b POSIX å\85±æ\9c\89ã\83¡ã\83¢ã\83ªã\83¼オブジェクトの実装は 専用のファイルシステムを使用する。そのファイルシステムは通常
\fI/dev/shm\fP にマウントされる。
.SH 関連項目
\fBclose\fP(2), \fBfchmod\fP(2), \fBfchown\fP(2), \fBfcntl\fP(2), \fBfstat\fP(2),
-\fBftruncate\fP(2), \fBmmap\fP(2), \fBopen\fP(2), \fBumask\fP(2), \fBshm_overview\fP(7)
+\fBftruncate\fP(2), \fBmemfd_create\fP(2), \fBmmap\fP(2), \fBopen\fP(2), \fBumask\fP(2),
+\fBshm_overview\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.77 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。