OSDN Git Service

(split) Import translated manuals from JM CVS Repository.
[linuxjm/LDP_man-pages.git] / release / man2 / shmctl.2
1 .\" Copyright (c) 1993 Luigi P. Bai (lpb@softint.com) July 28, 1993
2 .\" and Copyright 1993 Giorgio Ciucci <giorgio@crcc.it>
3 .\" and Copyright 2004, 2005 Michael Kerrisk <mtk.manpages@gmail.com>
4 .\"
5 .\" Permission is granted to make and distribute verbatim copies of this
6 .\" manual provided the copyright notice and this permission notice are
7 .\" preserved on all copies.
8 .\"
9 .\" Permission is granted to copy and distribute modified versions of this
10 .\" manual under the conditions for verbatim copying, provided that the
11 .\" entire resulting derived work is distributed under the terms of a
12 .\" permission notice identical to this one.
13 .\"
14 .\" Since the Linux kernel and libraries are constantly changing, this
15 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
16 .\" responsibility for errors or omissions, or for damages resulting from
17 .\" the use of the information contained herein.  The author(s) may not
18 .\" have taken the same level of care in the production of this manual,
19 .\" which is licensed free of charge, as they might when working
20 .\" professionally.
21 .\"
22 .\" Formatted or processed versions of this manual, if unaccompanied by
23 .\" the source, must acknowledge the copyright and authors of this work.
24 .\"
25 .\" Modified 1993-07-28, Rik Faith <faith@cs.unc.edu>
26 .\" Modified 1993-11-28, Giorgio Ciucci <giorgio@crcc.it>
27 .\" Modified 1997-01-31, Eric S. Raymond <esr@thyrsus.com>
28 .\" Modified 2001-02-18, Andries Brouwer <aeb@cwi.nl>
29 .\" Modified 2002-01-05, 2004-05-27, 2004-06-17,
30 .\"    Michael Kerrisk <mtk.manpages@gmail.com>
31 .\" Modified 2004-10-11, aeb
32 .\" Modified, Nov 2004, Michael Kerrisk <mtk.manpages@gmail.com>
33 .\"     Language and formatting clean-ups
34 .\"     Updated shmid_ds structure definitions
35 .\"     Added information on SHM_DEST and SHM_LOCKED flags
36 .\"     Noted that CAP_IPC_LOCK is not required for SHM_UNLOCK
37 .\"             since kernel 2.6.9
38 .\" Modified, 2004-11-25, mtk, notes on 2.6.9 RLIMIT_MEMLOCK changes
39 .\" 2005-04-25, mtk -- noted aberrant Linux behavior w.r.t. new
40 .\"     attaches to a segment that has already been marked for deletion.
41 .\" 2005-08-02, mtk: Added IPC_INFO, SHM_INFO, SHM_STAT descriptions.
42 .\"
43 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
44 .\"         all rights reserved.
45 .\" Translated 1997-03-01, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
46 .\" Updated & Modified 2001-06-13, Yuichi SATO <ysato@h4.dion.ne.jp>
47 .\" Updated & Modified 2005-01-05, Yuichi SATO <ysato444@yahoo.co.jp>
48 .\" Updated & Modified 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
49 .\" Updated & Modified 2005-10-08, Akihiro MOTOKI
50 .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36
51 .\"
52 .\"WORD:        shared memory           ¶¦Í­¥á¥â¥ê
53 .\"WORD:        segment                 ¥»¥°¥á¥ó¥È
54 .\"WORD:        owner                   ½êÍ­¼Ô
55 .\"WORD:        group                   ¥°¥ë¡¼¥×
56 .\"WORD:        creator                 ºîÀ®¼Ô
57 .\"WORD:        super-user              ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶¡¼
58 .\"WORD:        detach                  ʬΥ
59 .\"WORD:        attach                  ÉÕ²Ã
60 .\"WORD:        swap                    ¥¹¥ï¥Ã¥×
61 .\"WORD:        identifier              ¼±ÊÌ»Ò
62 .\"WORD:        member                  ¥á¥ó¥Ð¡¼
63 .\"WORD:        feature test macro      µ¡Ç½¸¡ºº¥Þ¥¯¥í
64 .\"
65 .TH SHMCTL 2 2008-08-07 "Linux" "Linux Programmer's Manual"
66 .SH Ì¾Á°
67 shmctl \- ¶¦Í­¥á¥â¥ê (shared memory) ¤òÀ©¸æ¤¹¤ë
68 .SH ½ñ¼°
69 .ad l
70 .B #include <sys/ipc.h>
71 .br
72 .B #include <sys/shm.h>
73 .sp
74 .BI "int shmctl(int " shmid ", int " cmd ", struct shmid_ds *" buf );
75 .ad b
76 .SH ÀâÌÀ
77 .BR shmctl ()
78 ¤Ï¡¢¼±Ê̻Ҥ¬
79 .I shmid
80 ¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ·¤Æ
81 .I cmd
82 ¤Ç»Ø¼¨¤·¤¿À©¸æÌ¿Îá¤ò¼Â¹Ô¤¹¤ë¡£
83 .PP
84 .I buf
85 °ú¤­¿ô¤Ï¡¢ \fIshmid_ds\fP ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
86 ¤³¤Î¹½Â¤ÂΤϠ\fI<sys/shm.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë
87 .PP
88 .in +4n
89 .nf
90 struct shmid_ds {
91     struct ipc_perm shm_perm;    /* ½êÍ­¸¢¤Èµö²Ä */
92     size_t          shm_segsz;   /* ¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º (¥Ð¥¤¥È) */
93     time_t          shm_atime;   /* ºÇ¸å¤ÎÉղà(attach) ¤Î»þ¹ï */
94     time_t          shm_dtime;   /* ºÇ¸å¤ÎʬΥ (detach) ¤Î»þ¹ï */
95     time_t          shm_ctime;   /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */
96     pid_t           shm_cpid;    /* ºîÀ®¼Ô (creator) ¤Î PID */
97     pid_t           shm_lpid;    /* ºÇ¸å¤Î shmat(2)/shmdt(2) ¤Î PID */
98     shmatt_t        shm_nattch;  /* ¸½ºßÉղ䵤ì¤Æ¤¤¤ë¿ô */
99     ...
100 };
101 .fi
102 .in
103 .PP
104 .I ipc_perm
105 ¹½Â¤ÂΤϠ\fI<sys/ipc.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë
106 (¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï
107 .B IPC_SET
108 ¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë):
109 .PP
110 .in +4n
111 .nf
112 struct ipc_perm {
113     key_t          __key;    /* shmget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */
114     uid_t          \fBuid\fP;      /* ½êÍ­¼Ô¤Î¼Â¸ú UID */
115     gid_t          \fBgid\fP;      /* ½êÍ­¼Ô¤Î¼Â¸ú GID */
116     uid_t          cuid;     /* ºîÀ®¼Ô¤Î¼Â¸ú UID */
117     gid_t          cgid;     /* ºîÀ®¼Ô¤Î¼Â¸ú GID */
118     unsigned short \fBmode\fP;     /* \fBµö²Ä\fP + SHM_DEST ¤È
119                                 SHM_LOCKED ¥Õ¥é¥° */
120     unsigned short __seq;    /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */
121 };
122 .fi
123 .in
124 .PP
125 .I cmd
126 ¤È¤·¤ÆÍ­¸ú¤ÊÃͤϰʲ¼¤ÎÄ̤ê:
127 .br
128 .TP 10
129 .B IPC_STAT
130 .I shmid
131 ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò
132 \fIbuf\fP ¤Ç»Ø¤µ¤ì¤¿
133 .I shmid_ds
134 ¹½Â¤ÂΤ˥³¥Ô¡¼¤¹¤ë¡£
135 ¸Æ¤Ó½Ð¤·¸µ¤Ï¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ËÂФ¹¤ë
136 Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
137 .TP
138 .B IPC_SET
139 .I buf
140 ¤Ë¤è¤Ã¤Æ»Ø¤µ¤ì¤ë
141 .I shmid_ds
142 ¹½Â¤ÂΤΤ¤¤¯¤Ä¤«¤Î¥á¥ó¥Ð¡¼¤ÎÃͤò¡¢
143 ¤³¤Î¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢
144 .I shm_ctime
145 ¥á¥ó¥Ð¡¼¤â¹¹¿·¤¹¤ë¡£
146 °Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤ÏÊѹ¹¤Ç¤­¤ë¡£
147 \fIshm_perm.uid\fP, \fIshm_perm.gid\fP,
148 \fIshm_perm.mode\fP (¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£
149 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô
150 .RI ( shm_perm.uid )
151 ¤Þ¤¿¤ÏºîÀ®¼Ô
152 .RI ( shm_perm.cuid )
153 ¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
154 .TP
155 .B IPC_RMID
156 ¥»¥°¥á¥ó¥È¤ËÇË´þºÑ¤ß¤Î¥Þ¡¼¥¯¤òÉÕ¤±¤ë¡£
157 ¥»¥°¥á¥ó¥È¤Ï¡¢¼ÂºÝ¤Ë¤ÏºÇ¸å¥×¥í¥»¥¹¤¬¥»¥°¥á¥ó¥È¤òʬΥ¤·¤¿ (´ØÏ¢¤¹¤ë
158 .I shmid_ds
159 ¹½Â¤ÂΤÎ
160 .I shm_nattch
161 ¥á¥ó¥Ð¡¼¤¬ 0 ¤Ë¤Ê¤Ã¤¿) ¸å¤Ç¤Î¤ßÇË´þ¤µ¤ì¤ë¡£
162 ¸Æ¤Ó½Ð¤·¸µ¤Ï½êÍ­¼Ô¤«ºîÀ®¼Ô¤Ç¤¢¤ë¤«¡¢Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
163 ¥»¥°¥á¥ó¥È¤ËÇË´þ¤Î¥Þ¡¼¥¯¤¬ÉÕ¤±¤é¤ì¤ë¤È¡¢
164 ´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ
165 .I shm_perm.mode
166 ¥Õ¥£¡¼¥ë¥É¤Î (ɸ½à¤Ç¤Ï¤Ê¤¤)
167 .B SHM_DEST
168 ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£
169 ¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂΤÏ
170 .B IPC_STAT
171 ¤Ç¼èÆÀ¤µ¤ì¤ë¡£
172 .PP
173 ¸Æ¤Ó½Ð¤·¸µ¤ÏºÇ½ªÅª¤Ë¤Ï¥»¥°¥á¥ó¥È¤ò˺¤ì¤º¤ËÇË´þ\fI¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤\fP¡£
174 ¤½¤¦¤Ç¤Ê¤ì¤Ð¡¢¥Õ¥©¡¼¥ë¥È (fault) ¤µ¤ì¤¿¥Ú¡¼¥¸¤Ï
175 ¥á¥â¥ê¤«¥¹¥ï¥Ã¥× (swap) ¤Ë»Ä¤ê³¤±¤ë¡£
176 .TP 10
177 .BR IPC_INFO " (Linux ¸ÇÍ­)"
178 ¥·¥¹¥Æ¥àÁ´ÂΤǤζ¦Í­¥á¥â¥ê¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢
179 .I buf
180 ¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£
181 ¤³¤Î¹½Â¤ÂΤÏ
182 .I shminfo
183 ·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥­¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£
184 .I shminfo
185 ¤Ï
186 .B _GNU_SOURCE
187 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë
188 .I <sys/shm.h>
189 ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
190 .nf
191 .in +4n
192
193 struct  shminfo {
194     unsigned long shmmax; /* ºÇÂ祻¥°¥á¥ó¥È¥µ¥¤¥º */
195     unsigned long shmmin; /* ºÇ¾®¥»¥°¥á¥ó¥È¥µ¥¤¥º¡£
196                              ¾ï¤Ë 1 */
197     unsigned long shmmni; /* ºÇÂ祻¥°¥á¥ó¥È¿ô */
198     unsigned long shmseg; /* ¥×¥í¥»¥¹¤¬ÉղäǤ­¤ë
199                              ¥»¥°¥á¥ó¥È¤ÎºÇÂç¿ô¡£
200                              ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
201     unsigned long shmall; /* ¶¦Í­¥á¥â¥ê¤ÎºÇÂç¥Ú¡¼¥¸¿ô¡£
202                              ¥·¥¹¥Æ¥àÁ´ÂΤǤÎÃÍ */
203 };
204
205 .in
206 .fi
207 ÀßÄê
208 .IR shmmni ,
209 .IR shmmax ,
210 .I shmall
211 ¤Ï
212 .I /proc
213 ¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
214 ¾Ü¤·¤¯¤Ï
215 .BR proc (5)
216 ¤ò»²¾È¡£
217 .TP
218 .BR SHM_INFO " (Linux ¸ÇÍ­)"
219 ¶¦Í­¥á¥â¥ê¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤ò
220 ³ÊǼ¤·¤¿
221 .I shm_info
222 ¹½Â¤ÂΤòÊÖ¤¹¡£
223 ¤³¤Î¹½Â¤ÂΤϡ¢
224 .B _GNU_SOURCE
225 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë
226 .I <sys/shm.h>
227 ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
228 .nf
229 .in +4n
230
231 struct shm_info {
232     int           used_ids; /* ¸½ºß¸ºß¤¹¤ë¥»¥°¥á¥ó¥È¿ô */
233     unsigned long shm_tot;  /* ¶¦Í­¥á¥â¥ê¤Î¥Ú¡¼¥¸Áí¿ô */
234     unsigned long shm_rss;  /* ¥á¥â¥ê¾å¤Ë¤¢¤ë (¥¹¥ï¥Ã¥×¤µ¤ì¤Æ
235                                ¤¤¤Ê¤¤) ¶¦Í­¥á¥â¥ê¥Ú¡¼¥¸¿ô */
236     unsigned long shm_swp;  /* ¥¹¥ï¥Ã¥×¤µ¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê
237                                ¥Ú¡¼¥¸¿ô */
238     unsigned long swap_attempts;
239                             /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */
240     unsigned long swap_successes;
241                             /* Linux 2.4 °Ê¹ß¤Ç¤Ï̤»ÈÍÑ */
242 };
243 .in
244 .fi
245 .TP
246 .BR SHM_STAT " (Linux ¸ÇÍ­)"
247 .B IPC_STAT
248 ¤ÈƱ¤¸¤¯
249 .I shmid_ds
250 ¹½Â¤ÂΤòÊÖ¤¹¡£
251 ⤷¡¢
252 .I shmid
253 °ú¤­¿ô¤Ï¡¢¥»¥°¥á¥ó¥È¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê
254 ¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹
255 ¤Ç¤¢¤ë¡£
256 .PP
257 ¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢\fIcmd\fP ¤Ë°Ê²¼¤ÎÃͤò»ØÄꤹ¤ë¤³¤È¤Ç¡¢¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤¬
258 ¥¹¥ï¥Ã¥×¤µ¤ì¤ë¤³¤È¤òËɻߤ·¤¿¤ê¡¢µö²Ä¤·¤¿¤ê¤Ç¤­¤ë:
259 .br
260 .TP 10
261 .BR SHM_LOCK " (Linux ¸ÇÍ­)"
262 ¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò¥¹¥ï¥Ã¥×¤¹¤ë¤³¤È¤òËɻߤ¹¤ë¡£
263 ¥í¥Ã¥¯¤¬Í­¸ú¤Ë¤Ê¤Ã¤¿¸å¡¢¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢
264 ¸ºß¤¹¤ë¤³¤È¤¬Í׵ᤵ¤ì¤¿Á´¤Æ¤Î¥Ú¡¼¥¸¤ò¥Õ¥©¡¼¥ë¥È¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
265 ¥»¥°¥á¥ó¥È¤¬¥í¥Ã¥¯¤µ¤ì¤ë¤È¡¢
266 ´ØÏ¢¤¹¤ë¥Ç¡¼¥¿¹½Â¤ÂΤˤª¤¤¤Æ
267 .I shm_perm.mode
268 ¥Õ¥£¡¼¥ë¥É¤Î (ɸ½àŪ¤Ç¤Ï¤Ê¤¤)
269 .B SHM_LOCKED
270 ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤ë¡£
271 ¤³¤Î¥Ç¡¼¥¿¹½Â¤ÂΤÏ
272 .B IPC_STAT
273 ¤Ç¼èÆÀ¤µ¤ì¤ë¡£
274 .TP
275 .BR SHM_UNLOCK " (Linux ¸ÇÍ­)"
276 ¥»¥°¥á¥ó¥È¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¡¢¥¹¥ï¥Ã¥×¡¦¥¢¥¦¥È¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£
277 .PP
278 2.6.10 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢Æø¢¥×¥í¥»¥¹¤À¤±¤¬
279 .B SHM_LOCK
280 ¤È
281 .B SHM_UNLOCK
282 ¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤¿¡£
283 2.6.10 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ç¤Ï¡¢ÈóÆø¢¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¼¡¤Î¾ò·ï¤òËþ¤¿¤»¤Ð
284 ¤³¤ì¤é¤ÎÁàºî¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤½¤Î¾ò·ï¤È¤Ï¡¢¥×¥í¥»¥¹¤Î¼Â¸ú UID
285 ¤¬¤½¤Î¥»¥°¥á¥ó¥È¤Î½êÍ­¼Ô¤â¤·¤¯¤ÏºîÀ®¼Ô¤Î UID ¤È°ìÃפ·¡¢
286 .RB ( SHM_LOCK
287 ¤Î¾ì¹ç¤Ë¤Ï) ¥í¥Ã¥¯¤¹¤ë¥á¥â¥ê¤Î¹ç·×¤¬
288 .B RLIMIT_MEMLOCK
289 ¥ê¥½¡¼¥¹¾å¸Â
290 .RB ( setrlimit (2)
291 »²¾È) ¤ÎÈÏ°ÏÆâ¤ËÆþ¤Ã¤Æ¤¤¤ë¤³¤È¤Ç¤¢¤ë¡£
292 .\" There was some weirdness in 2.6.9: SHM_LOCK and SHM_UNLOCK could
293 .\" be applied to a segment, regardless of ownership of the segment.
294 .\" This was a botch-up in the move to RLIMIT_MEMLOCK, and was fixed
295 .\" in 2.6.10.  MTK, May 2005
296 .SH ÊÖ¤êÃÍ
297 .B IPC_INFO
298 ¤È
299 .B SHM_INFO
300 Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò
301 ´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î
302 ¤¦¤ÁºÇÂçÃͤòÊÖ¤¹
303 (¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò
304 ¼èÆÀ¤¹¤ë¤¿¤á¤Ë¡¢
305 .B SHM_STAT
306 Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)¡£
307 .B SHM_STAT
308 Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢
309 .I shmid
310 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¶¦Í­¥á¥â¥ê¥»¥°¥á¥ó¥È¤Î¼±Ê̻ҤòÊÖ¤¹¡£
311 ¾¤ÎÁàºî¤Ï¡¢À®¸ù¤Î¾ì¹ç 0 ¤òÊÖ¤¹¡£
312
313 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
314 .I errno
315 ¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
316 .SH ¥¨¥é¡¼
317 .TP
318 .B EACCES
319
320 \fBIPC_STAT\fP ¤Þ¤¿¤Ï \fBSHM_STAT\fP ¤¬Í׵ᤵ¤ì¡¢
321 \fIshm_perm.mode\fP ¤¬
322 .I shmid
323 ¤Ø¤ÎÆɤ߹þ¤ß¥¢¥¯¥»¥¹¤òµö¤·¤Æ¤ª¤é¤º¡¢
324 ¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬
325 .B CAP_IPC_OWNER
326 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
327 .TP
328 .B EFAULT
329 .I cmd
330 °ú¤­¿ô¤Ë
331 .B IPC_SET
332 ¤«
333 .B IPC_STAT
334 ¤¬»ØÄꤵ¤ì¤¿¤¬
335 .I buf
336 ¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤Ç¤­¤Ê¤¤¡£
337 .TP
338 .B EIDRM
339 \fIshmid\fP ¤¬ºï½ü (remove) ¤µ¤ì¤¿¼±Ê̻Ҡ(identifier) ¤ò»Ø¤·¤Æ¤¤¤ë¡£
340 .TP
341 .B EINVAL
342 \fIshmid\fP ¤¬Í­¸ú¤Ê¼±Ê̻ҤǤʤ¤¤«¡¢
343 \fIcmd\fP ¤¬Í­¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤Ê¤¤¡£
344 ¤â¤·¤¯¤Ï¡¢
345 .B SHM_STAT
346 Áàºî¤Î¾ì¹ç¤Ë¡¢
347 .I shmid
348 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤·¤Æ¤¤¤¿¡£
349 .TP
350 .B ENOMEM
351 (2.6.9 °Ê¹ß¤Î¥«¡¼¥Í¥ë¤Ë¤ª¤¤¤Æ)
352 .B SHM_LOCK
353 ¤¬»ØÄꤵ¤ì¡¢
354 ¥í¥Ã¥¯¤µ¤ì¤ëͽÄê¤Î¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º
355 (¥í¥Ã¥¯¤µ¤ì¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤Î¹ç·×¥Ð¥¤¥È¿ô) ¤¬¡¢
356 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶¡¼ ID ¤Ë¤Ä¤¤¤Æ¤ÎÀ©¸Â¤òĶ¤¨¤¿¡£
357 ¤³¤ÎÀ©¸Â¤Ï
358 .B RLIMIT_MEMLOCK
359 ¥½¥Õ¥È»ñ¸»À©¸Â¤ÇÄêµÁ¤µ¤ì¤ë
360 .RB ( setrlimit (2)
361 ¤ò»²¾È)¡£
362 .TP
363 .B EOVERFLOW
364 \fBIPC_STAT\fP ¤¬»î¤ß¤é¤ì¡¢GID ¤ä UID ¤ÎÃͤ¬
365 .I buf
366 ¤Ç»Ø¼¨¤µ¤ì¤ë¹½Â¤ÂΤ˳ÊǼ¤¹¤ë¤Ë¤ÏÂ礭²á¤®¤ë¡£
367 .TP
368 .B EPERM
369 \fBIPC_SET\fP ¤« \fBIPC_RMID\fP ¤¬»î¤ß¤é¤ì¡¢
370 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ºîÀ®¼Ô
371 .RI ( shm_perm.cuid )
372 ¤Ç¤â½êÍ­¼Ô
373 .RI ( shm_perm.uid )
374 ¤Ç¤â¤Ê¤¯¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤ (Linux ¤Ç¤Ï
375 .B CAP_SYS_ADMIN
376 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£
377
378 ¤Þ¤¿¤Ï (2.6.9 ¤è¤êÁ°¤Î¥«¡¼¥Í¥ë¤Ç)
379 .B SHM_LOCK
380 ¤Þ¤¿¤Ï
381 .B SHM_UNLOCK
382 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤¬¡¢¥×¥í¥»¥¹¤¬Æø¢¤ò»ý¤¿¤Ê¤¤
383 (Linux ¤Ç¤Ï
384 .B CAP_IPC_LOCK
385 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤)¡£
386 (Linux 2.6.9 °Ê¹ß¤Ç¤Ï¡¢
387 .B RLIMIT_MEMLOCK
388 ¤¬ 0 ¤Ç¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ë¤â¡¢¤³¤Î¥¨¥é¡¼¤¬µ¯¤³¤ë¡£)
389 .SH ½àµò
390 SVr4, POSIX.1-2001.
391 .\" SVr4 ¤Ë¤Ï¾¤Ë EINVAL, ENOENT, ENOSPC, ENOMEM,
392 .\" EEXIST ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£
393 .\" SVr4 ¤ª¤è¤Ó SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤Ï¤Ê¤¤¡£
394 .SH Ãí°Õ
395 .BR IPC_INFO ,
396 .BR SHM_STAT ,
397 .B SHM_INFO
398 Áàºî¤Ï¡¢
399 .BR ipcs (8)
400 ¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë
401 »ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾­Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢
402 /proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
403
404 Linux ¤Ç¤Ï¡¢
405 .I shmctl(IPC_RMID)
406 ¤ò»È¤Ã¤Æ¤¹¤Ç¤Ëºï½ü¥Þ¡¼¥¯¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤ë¶¦Í­¥á¥â¥ê¡¦¥»¥°¥á¥ó¥È¤ò
407 ¤¢¤ë¥×¥í¥»¥¹¤¬Éղà(attach)
408 .RB ( shmat (2))
409 ¤¹¤ë¤³¤È¤òµö²Ä¤·¤Æ¤¤¤ë¡£
410 ¤³¤Îµ¡Ç½¤Ï¾¤Î Unix ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£
411 °Ü¿¢À­¤ò¹Íθ¤·¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï¤³¤ì¤Ë°Í¸¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
412
413 \fI¹½Â¤ÂΠshmid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢
414 Linux 2.2 ¤Ç¤Ï
415 .I short
416 ·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï
417 .I long
418 ·¿¤Ë¤Ê¤Ã¤¿¡£
419 ¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç
420 ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£
421 ¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò
422 .I cmd
423 Æâ¤Î
424 .B IPC_64
425 ¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£
426 .SH ´ØÏ¢¹àÌÜ
427 .BR mlock (2),
428 .BR setrlimit (2),
429 .BR shmget (2),
430 .BR shmop (2),
431 .BR capabilities (7),
432 .BR shm_overview (7),
433 .BR svipc (7)