.\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
.\" Updated 2013-07-24, Akihiro MOTOKI <amotoki@gmail.com>
.\"
-.TH SHMOP 2 2014\-04\-28 Linux "Linux Programmer's Manual"
+.TH SHMOP 2 2014\-07\-08 Linux "Linux Programmer's Manual"
.SH 名前
shmat, shmdt \- System V 共有メモリ (shared memory) の操作
.SH 書式
execute permission on the segment.
.TP
\fBSHM_RDONLY\fP
-Attach the segment for read\-only access. The process must have read
-permission for the segment. If this flag is not specified, the segment is
-attached for read and write access, and the process must have read and write
-permission for the segment. There is no notion of a write\-only shared
-memory segment.
+セグメントを読み込み専用に付加する。 プロセスはそのセグメントへの読み込み許可を持っていなければならない。
+このフラグが指定されなかった場合、そのセグメントは読み込みと書き込みアクセスのために付加され、
+プロセスはそのセグメントに読み込みと書き込みの許可を持っていなければならない。 書き込み専用の共有メモリ・セグメントという概念は存在しない。
.TP
\fBSHM_REMAP\fP (Linux 固有)
-This flag specifies that the mapping of the segment should replace any
-existing mapping in the range starting at \fIshmaddr\fP and continuing for the
-size of the segment. (Normally, an \fBEINVAL\fP error would result if a
-mapping already exists in this address range.) In this case, \fIshmaddr\fP
-must not be NULL.
+このフラグは、 セグメントのマッピングを既存のマッピングに置き換えることを指示する。 マッピングの範囲は、 \fIshmaddr\fP
+から始まりセグメントのサイズ分だけある (通常 \fBEINVAL\fP エラーは、このアドレス範囲にマッピングが既に存在するために起る)。
+このフラグを指定する場合は、 \fIshmaddr\fP が NULL であってはならない。
.PP
呼び出したプロセスの \fBbrk\fP(2) の値は付加によって変化しない。 そのセグメントはプロセスが終了 (exit) したら自動的に分離
(detach) される。 同じセグメントをプロセスのアドレス空間に、読み込み専用および読み書き両用 として付加でき、また複数回付加することもできる。
SVr4, POSIX.1\-2001.
SVID 3 で (たぶんそれより前だと思うが) \fIshmaddr\fP 引き数の型は \fIchar\ *\fP から \fIconst void\ *\fP
-に、\fIshmat\fP() の返り値の型は \fIchar\ *\fP から \fIvoid\ *\fP に変更された (Linux では libc4 と libc5
-のプロトタイプは \fIchar\ *\fP であり、glibc2 のプロトタイプは \fIvoid\ *\fP である)。
+に、\fIshmat\fP() の返り値の型は \fIchar\ *\fP から \fIvoid\ *\fP に変更された。
.SH 注意
.PP
\fBfork\fP(2) した後、子プロセスは付加された共有メモリ・セグメントを継承する。
.LP
以下のシステム・パラメーターは、 \fBshmat\fP() に影響する:
.TP
-.\" FIXME A good explanation of the rationale for the existence
-.\" of SHMLBA would be useful here
\fBSHMLBA\fP
-.\" FIXME That last sentence isn't true for all Linux
-.\" architectures (i.e., SHMLBA != PAGE_SIZE for some architectures)
-.\" -- MTK, Nov 04
-セグメントの境界アドレスの最小倍数。ページ境界に合ってなければならない。 現在の実装では \fBSHMLBA\fP の値は \fBPAGE_SIZE\fP である。
+Segment low boundary address multiple. When explicitly specifying an attach
+address in a call to \fBshmat\fP(), the caller should ensure that the address
+is a multiple of this value. This is necessary on some architectures, in
+order either to ensure good CPU cache performance or to ensure that
+different attaches of the same segment have consistent views within the CPU
+cache. \fBSHMLBA\fP is normally some multiple of the system page size (on many
+Linux architectures, it is the same as the system page size).
.PP
現在の実装では、プロセスごとの 共有メモリ・セグメントの最大数 (\fBSHMSEG\fP) に関する実装依存の制限はない。
.SH 関連項目
\fBbrk\fP(2), \fBmmap\fP(2), \fBshmctl\fP(2), \fBshmget\fP(2), \fBcapabilities\fP(7),
\fBshm_overview\fP(7), \fBsvipc\fP(7)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.68 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。