OSDN Git Service

Import translated manuals from JM CVS Repository.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man2 / semctl.2
1 .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it)
2 .\" and Copyright 2004, 2005 Michael Kerrisk <mtk.manpages@gmail.com>
3 .\"
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein.  The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
23 .\"
24 .\" Modified Tue Oct 22 17:53:56 1996 by Eric S. Raymond <esr@thyrsus.com>
25 .\" Modified Fri Jun 19 10:59:15 1998 by Andries Brouwer <aeb@cwi.nl>
26 .\" Modified Sun Feb 18 01:59:29 2001 by Andries Brouwer <aeb@cwi.nl>
27 .\" Modified 20 Dec 2001, Michael Kerrisk <mtk.manpages@gmail.com>
28 .\" Modified 21 Dec 2001, aeb
29 .\" Modified 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
30 .\"     Added notes on CAP_IPC_OWNER requirement
31 .\" Modified 17 Jun 2004, Michael Kerrisk <mtk.manpages@gmail.com>
32 .\"     Added notes on CAP_SYS_ADMIN requirement for IPC_SET and IPC_RMID
33 .\" Modified, 11 Nov 2004, Michael Kerrisk <mtk.manpages@gmail.com>
34 .\"     Language and formatting clean-ups
35 .\"     Rewrote semun text
36 .\"     Added semid_ds and ipc_perm structure definitions
37 .\" 2005-08-02, mtk: Added IPC_INFO, SEM_INFO, SEM_STAT descriptions.
38 .\"
39 .\" Japanese Version Copyright (c) 1997,1998 HANATAKA Shinya
40 .\"         all rights reserved.
41 .\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
42 .\" Modified 1998-09-10, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
43 .\" Updated & Modified 2001-06-03, Yuichi SATO <ysato@h4.dion.ne.jp>
44 .\" Updated & Modified 2002-01-02, Yuichi SATO
45 .\" Updated & Modified 2005-01-03, Yuichi SATO <ysato444@yahoo.co.jp>
46 .\" Updated & Modified 2005-10-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
47 .\"
48 .\"WORD:        semaphore               ¥»¥Þ¥Õ¥©
49 .\"WORD:        semaphore set           ¥»¥Þ¥Õ¥©½¸¹ç
50 .\"WORD:        union                   ¶¦ÍÑÂÎ
51 .\"WORD:        buffer                  ¥Ð¥Ã¥Õ¥¡
52 .\"WORD:        member                  ¥á¥ó¥Ð¡¼
53 .\"WORD:        superuser               ¥¹¡¼¥Ñ¡¼¡¦¥æ¡¼¥¶
54 .\"WORD:        effective uid           ¼Â¸ú¥æ¡¼¥¶ ID
55 .\"WORD:        creator                 ºîÀ®¼Ô
56 .\"WORD:        owner                   ½êÍ­¼Ô
57 .\"WORD:        entry                   ¥¨¥ó¥È¥ê
58 .\"WORD:        undo                    ¥¢¥ó¥É¥¥
59 .\"WORD:        implement               ¼ÂÁõ
60 .\"WORD:        feature test macro      µ¡Ç½¸¡ºº¥Þ¥¯¥í
61 .\"
62 .TH SEMCTL 2 2009-09-27 "Linux" "Linux Programmer's Manual"
63 .SH Ì¾Á°
64 semctl \- ¥»¥Þ¥Õ¥©¤ÎÀ©¸æÁàºî¤ò¹Ô¤Ê¤¦
65 .SH ½ñ¼°
66 .nf
67 .B #include <sys/types.h>
68 .B #include <sys/ipc.h>
69 .B #include <sys/sem.h>
70 .sp
71 .BI "int semctl(int " semid ", int " semnum ", int " cmd ", ...);"
72 .fi
73 .SH ÀâÌÀ
74 .BR semctl ()
75 ¤Ï¡¢
76 .I semid
77 ¤Ç»ØÄꤵ¤ì¤¿¥»¥Þ¥Õ¥©½¸¹ç (semaphore set)
78 ¤Þ¤¿¤Ï¥»¥Þ¥Õ¥©½¸¹ç¤Î
79 .I semnun
80 ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËÂФ·¤Æ¡¢
81 .I cmd
82 ¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦
83 (½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤ÎÈÖ¹æ¤Ï 0 ¤«¤é»Ï¤Þ¤ë)¡£
84 .PP
85 ¤³¤Î´Ø¿ô¤Ï¡¢
86 .I cmd
87 ¤ÎÃͤ˰͸¤·¤Æ¡¢3 ¸Ä¤Þ¤¿¤Ï 4 ¸Ä¤Î°ú¤­¿ô¤ò»ý¤Ä¡£
88 °ú¤­¿ô¤¬ 4 ¸Ä¤Î¾ì¹ç¡¢Âè 4 °ú¤­¿ô¤Î·¿¤Ï
89 .I "union semun"
90 ¤Ç¤¢¤ë¡£
91 \fI¸Æ¤Ó½Ð¤·¸µ¥×¥í¥°¥é¥à\fP¤Ï¡¢
92 ¤³¤Î¶¦ÍÑÂΠ(union) ¤ò°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
93
94 .nf
95 .in +4n
96 union semun {
97     int              val;    /* SETVAL ¤ÎÃÍ */
98     struct semid_ds *buf;    /* IPC_STAT, IPC_SET ÍѤΥХåե¡ */
99     unsigned short  *array;  /* GETALL, SETALL ÍѤÎÇÛÎó */
100     struct seminfo  *__buf;  /* IPC_INFO ÍѤΥХåե¡
101                                 (Linux ¸ÇÍ­) */
102 };
103 .in
104 .fi
105 .PP
106 .I semid_ds
107 ¥Ç¡¼¥¿¹½Â¤ÂΤϠ\fI<sys/sem.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
108 .nf
109 .in +4n
110
111 struct semid_ds {
112     struct ipc_perm sem_perm;  /* ½êÍ­¸¢¤Èµö²Ä */
113     time_t          sem_otime; /* ºÇ¸å¤Î semop ¤Î»þ¹ï */
114     time_t          sem_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */
115     unsigned short  sem_nsems; /* ½¸¹çÆâ¤Î¥»¥Þ¥Õ¥©¤Î¿ô */
116 };
117 .fi
118 .PP
119 .in
120 .fi
121 .PP
122 .I ipc_perm
123 ¹½Â¤ÂΤϠ\fI<sys/ipc.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë
124 (¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï
125 .B IPC_SET
126 ¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë):
127 .PP
128 .nf
129 .in +4n
130 struct ipc_perm {
131     key_t          __key; /* semget(2) ¤ËÍ¿¤¨¤é¤ì¤ë¥­¡¼ */
132     uid_t          \fBuid\fP;   /* ½êÍ­¼Ô (owner) ¤Î¼Â¸ú UID */
133     gid_t          \fBgid\fP;   /* ½êÍ­¼Ô¤Î¼Â¸ú GID */
134     uid_t          cuid;  /* ºîÀ®¼Ô (creator) ¤Î¼Â¸ú UID */
135     gid_t          cgid;  /* ºîÀ®¼Ô¤Î¼Â¸ú GID */
136     unsigned short \fBmode\fP;  /* µö²Ä */
137     unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */
138 };
139 .in
140 .fi
141 .PP
142 .I cmd
143 ¤È¤·¤ÆÍ­¸ú¤ÊÃͤÏ
144 .TP 10
145 .B IPC_STAT
146 .I semid
147 ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤξðÊó¤ò
148 .I arg.buf
149 ¤Ç»Ø¤µ¤ì¤¿
150 .I semid_ds
151 ¹½Â¤ÂΤإ³¥Ô¡¼¤¹¤ë¡£
152 .I semnum
153 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£
154 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÂФ¹¤ë
155 Æɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
156 .TP
157 .B IPC_SET
158 .I arg.buf
159 ¤Ç»ØÄꤵ¤ì¤¿
160 .I semid_ds
161 ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¤¤¯¤Ä¤«¤ÎÃͤò¡¢
162 ¤³¤Î¥»¥Þ¥Õ¥©¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥«¡¼¥Í¥ë¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤­¹þ¤ß¡¢
163 .I sem_ctime
164 ¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£
165 ¹½Â¤ÂΤΰʲ¼¤Î¥á¥ó¥Ð¡¼¤¬¹¹¿·¤µ¤ì¤ë:
166 .IR sem_perm.uid ,
167 .IR sem_perm.gid ,
168 .I sem_perm.mode
169 (¤ÎºÇ²¼°Ì 9 ¥Ó¥Ã¥È)¡£
170 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú UID ¤¬½êÍ­¼Ô
171 .RI ( sem_perm.uid )
172 ¤Þ¤¿¤ÏºîÀ®¼Ô
173 .RI ( sem_perm.cuid )
174 ¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
175 .I semnum
176 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£
177 .TP
178 .B IPC_RMID
179 ¥»¥Þ¥Õ¥©½¸¹ç¤ò¤¿¤À¤Á¤Ëºï½ü¤·¡¢¤½¤Î½¸¹ç¾å¤Î
180 .BR semop (2)
181 ¥³¡¼¥ë¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ëÁ´¤Æ¤Î¥×¥í¥»¥¹¤òÌܳФᤵ¤»¤ë
182 (¥¨¥é¡¼Ãͤ¬ÊÖ¤µ¤ì¤Æ¡¢
183 .I errno
184 ¤Ë
185 .B EIDRM
186 ¤¬ÀßÄꤵ¤ì¤ë)¡£
187 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬
188 ¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºîÀ®¼Ô¤Þ¤¿¤Ï½êÍ­¼Ô¤È°ìÃפ¹¤ë¤«¡¢
189 ¸Æ¤Ó½Ð¤·¤¿¿Í¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
190 .I semnum
191 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£
192 .TP
193 .BR IPC_INFO " (Linux ¸ÇÍ­)"
194 ¥·¥¹¥Æ¥àÁ´ÂΤǤΥ»¥Þ¥Õ¥©¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢
195 .I arg.__buf
196 ¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£
197 ¤³¤Î¹½Â¤ÂΤÏ
198 .I seminfo
199 ·¿¤Ç¤¢¤ë¡£
200 .I seminfo
201 ¤Ï
202 .B _GNU_SOURCE
203 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë
204 .I <sys/sem.h>
205 ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
206 .nf
207 .in +4n
208
209 struct  seminfo {
210     int semmap;  /* ¥»¥Þ¥Õ¥©¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô;
211                     ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
212     int semmni;  /* ¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂç¿ô */
213     int semmns;  /* Á´¥»¥Þ¥Õ¥©½¸¹çÃæ¤Î¥»¥Þ¥Õ¥©¤Î
214                     ºÇÂç¿ô */
215     int semmnu;  /* ¥¢¥ó¥É¥¥¹½Â¤ÂΤΥ·¥¹¥Æ¥àÁ´ÂΤǤÎ
216                     ºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
217     int semmsl;  /* °ì¤Ä¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ÎºÇÂ祻¥Þ¥Õ¥©¿ô */
218     int semopm;  /* semop(2) ¤ËÅϤ¹Áàºî¤ÎºÇÂç¿ô */
219     int semume;  /* ¥×¥í¥»¥¹¤¢¤¿¤ê¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê
220                     ¤ÎºÇÂç¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
221     int semusz;  /* ¹½Â¤ÂΠsem_undo ¤Î¥µ¥¤¥º */
222     int semvmx;  /* ¥»¥Þ¥Õ¥©¤ÎºÇÂçÃÍ */
223     int semaem;  /* ¥»¥Þ¥Õ¥©¤ÎÄ´À° (semaphore adjustment;
224                      SEM_UNDO) ¤Î¤¿¤á¤Ëµ­Ï¿¤µ¤ì¤ëºÇÂçÃÍ */
225 };
226
227 .in
228 .fi
229 ÀßÄê
230 .IR semmsl ,
231 .IR semmns ,
232 .IR semopm ,
233 .I semmni
234 ¤Ï
235 .I /proc/sys/kernel/sem
236 ·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
237 ¾Ü¤·¤¯¤Ï
238 .BR proc (5)
239 ¤ò»²¾È¡£
240 .TP
241 .BR SEM_INFO " (Linux ¸ÇÍ­)"
242 .B IPC_INFO
243 ¤Î¤È¤­¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿
244 .I seminfo
245 ¹½Â¤ÂΤòÊÖ¤¹¡£
246 ⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥»¥Þ¥Õ¥©¤¬¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë
247 ´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£
248 .I semusz
249 ¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¿ô¤òÊÖ¤¹¡£
250 .I semaem
251 ¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Þ¤Þ¤ì¤ë
252 ¥»¥Þ¥Õ¥©¤ÎÁí¿ô¤òÊÖ¤¹¡£
253 .TP
254 .BR SEM_STAT " (Linux ¸ÇÍ­)"
255 .B IPC_STAT
256 ¤ÈƱ¤¸¤¯
257 .I semid_ds
258 ¹½Â¤ÂΤòÊÖ¤¹¡£
259 ⤷¡¢
260 .I semid
261 °ú¤­¿ô¤Ï¡¢¥»¥Þ¥Õ¥©¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç
262 ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£
263 .TP
264 .B GETALL
265 ½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î
266 .B semval
267 ¤ÎÃÍ (¸½ºß¤ÎÃÍ) ¤ò
268 .I arg.array
269 ¤ËÊÖ¤¹¡£
270 .I semnum
271 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£
272 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
273 .TP
274 .B GETNCNT
275 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î
276 .I semnum
277 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
278 .B semncnt
279 ¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î
280 .I semnum
281 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
282 .B semval
283 ¤ÎÁý²Ã¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£
284 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
285 .TP
286 .B GETPID
287 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î
288 .I semnum
289 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
290 .B sempid
291 ¤ÎÃÍ (½¸¹ç¤Î
292 .I semnum
293 ÈÖÌܤΥ»¥Þ¥Õ¥©¤ËºÇ¸å¤Ë
294 .BR semop (2)
295 ¥³¡¼¥ë¤ò¼Â¹Ô¤·¤¿¥×¥í¥»¥¹¤Î PID) ¤òÊÖ¤¹¡£
296 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
297 .TP
298 .B GETVAL
299 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î
300 .I semnum
301 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
302 .B semval
303 ¤ÎÃͤòÊÖ¤¹¡£
304 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
305 .TP
306 .B GETZCNT
307 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½¸¹ç¤Î
308 .I semnum
309 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
310 .B semzcnt
311 ¤ÎÃͤòÊÖ¤¹ (½¸¹ç¤Î
312 .I semnum
313 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
314 .B semval
315 ¤ÎÃͤ¬ 0 ¤Ë¤Ê¤ë¤Î¤òÂԤäƤ¤¤ë¥×¥í¥»¥¹¤Î¿ô¤òÊÖ¤¹)¡£
316 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤ËÆɤ߹þ¤ßµö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
317 .TP
318 .B SETALL
319 ½¸¹ç¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©¤Î
320 .B semval
321 ¤Ë
322 .I arg.array
323 ¤Ç»ØÄꤵ¤ì¤¿ÃͤòÀßÄꤹ¤ë¡£
324 ¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë
325 .I semid_ds
326 ¹½Â¤ÂΤÎ
327 .I sem_ctime
328 ¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£
329 Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê
330 .RB ( semop (2)
331 ¤ò»²¾È) ¤Ï¾Ãµî (clear) ¤µ¤ì¤ë¡£
332 ¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë
333 .BR semop (2)
334 ¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£
335 .I semnum
336 °ú¤­¿ô¤Ï̵»ë¤µ¤ì¤ë¡£
337 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë
338 Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
339 .TP
340 .B SETVAL
341 ½¸¹ç¤Î
342 .I semnum
343 ÈÖÌܤΥ»¥Þ¥Õ¥©¤Î
344 .B semval
345 ¤Ë
346 .I arg.val
347 ¤ÎÃͤòÀßÄꤹ¤ë¡£¤½¤Î½¸¹ç¤Ë´ØÏ¢¤¹¤ë
348 .I semid_ds
349 ¹½Â¤ÂΤÎ
350 .I sem_ctime
351 ¥á¥ó¥Ð¡¼¤ÎÃͤ⹹¿·¤¹¤ë¡£
352 Á´¤Æ¤Î¥×¥í¥»¥¹¤Î¥»¥Þ¥Õ¥©¤ÎÊѹ¹¤Ë¤Ä¤¤¤Æ¤Î¥¢¥ó¥É¥¥¡¦¥¨¥ó¥È¥ê¤Ï¾Ãµî¤µ¤ì¤ë¡£
353 ¥»¥Þ¥Õ¥©¤ÎÃͤÎÊѹ¹¤Ë¤è¤ê¡¢Â¾¤Î¥×¥í¥»¥¹Æâ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë
354 .BR semop (2)
355 ¥³¡¼¥ë¤Î³¹Ô¤¬µö²Ä¤µ¤ì¤ë¤È¡¢¤½¤ì¤é¤Î¥×¥í¥»¥¹¤Ïµ¯¤³¤µ¤ì¤ë (wake up)¡£
356 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Ï¤½¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë
357 Êѹ¹ (½ñ¤­¹þ¤ß) µö²Ä¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
358 .SH ÊÖ¤êÃÍ
359 ¼ºÇÔ¤·¤¿¾ì¹ç¡¢
360 .BR semctl ()
361 ¤Ï \-1 ¤òÊÖ¤·¡¢
362 .I errno
363 ¤Ë¤½¤Î¥¨¥é¡¼¤ò¼¨¤¹¡£
364
365 ¤½¤¦¤Ç¤Ê¤±¤ì¤Ð¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
366 .I cmd
367 ¤Ë¤è¤Ã¤Æ°Ê²¼¤ÎÉé¤Ç¤Ê¤¤ÃͤòÊÖ¤¹:
368 .TP 12
369 .B GETNCNT
370 .B semncnt
371 ¤ÎÃÍ
372 .TP
373 .B GETPID
374 .B sempid
375 ¤ÎÃÍ
376 .TP
377 .B GETVAL
378 .B semval
379 ¤ÎÃÍ
380 .TP
381 .B GETZCNT
382 .B semzcnt
383 ¤ÎÃÍ
384 .TP
385 .B IPC_INFO
386 Á´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃæ
387 ¥¨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎºÇÂçÃÍ
388 (¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥»¥Þ¥Õ¥©½¸¹ç¤Ë´Ø¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Ë
389 .B SEM_STAT
390 Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ­¤ë)
391 .TP
392 .B SEM_INFO
393 .B IPC_INFO
394 ¤ÈƱ¤¸
395 .TP
396 .B SEM_STAT
397 .I semid
398 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥»¥Þ¥Õ¥©½¸¹ç¤Î¼±ÊÌ»Ò
399 .LP
400 .I cmd
401 ¤ÎÃͤ¬¤½¤ì°Ê³°¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È 0 ¤¬ÊÖ¤µ¤ì¤ë¡£
402 .SH ¥¨¥é¡¼
403 ¼ºÇÔ¤·¤¿¾ì¹ç¤Ï
404 .I errno
405 ¤Ë¤Ï°Ê²¼¤ÎÃͤΤɤ줫¤¬ÀßÄꤵ¤ì¤ë:
406 .TP
407 .B EACCES
408 .I cmd
409 °ú¤­¿ô¤¬
410 .BR GETALL ,
411 .BR GETPID ,
412 .BR GETVAL ,
413 .BR GETNCNT ,
414 .BR GETZCNT ,
415 .BR IPC_STAT ,
416 .BR SEM_STAT ,
417 .BR SETALL ,
418 .B SETVAL
419 ¤Î¤¦¤Á¤Î²¿¤ì¤«¤ÎÃͤò»ý¤Á¡¢
420 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥»¥Þ¥Õ¥©¤ËÂФ·¤ÆɬÍפȤµ¤ì¤ëµö²Ä¤È
421 .B CAP_IPC_OWNER
422 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
423 .TP
424 .B EFAULT
425 .I arg.buf
426 ¤Þ¤¿¤Ï
427 .I arg.array
428 ¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
429 .TP
430 .B EIDRM
431 ¥»¥Þ¥Õ¥©½¸¹ç¤¬ºï½ü¤µ¤ì¤¿¡£
432 .TP
433 .B EINVAL
434 .I cmd
435 ¤Þ¤¿¤Ï
436 .I semid
437 ¤Ë̵¸ú¤ÊÃͤ¬»ØÄꤵ¤ì¤¿¡£
438 ¤â¤·¤¯¤Ï¡¢
439 .B SEM_STAT
440 Áàºî¤Î¾ì¹ç¤Ë¡¢
441 .I semid
442 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£
443 .TP
444 .B EPERM
445 .I cmd
446 °ú¤­¿ô¤Ë
447 .B IPC_SET
448 ¤Þ¤¿¤Ï
449 .B IPC_RMID
450 ¤¬»ØÄꤵ¤ì¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥»¥Þ¥Õ¥©¤Î
451 .RI ( sem_perm.cuid
452 ¤Ç¸«¤Ä¤«¤ë) ºîÀ®¼Ô¤Þ¤¿¤Ï
453 .RI ( sem_perm.uid
454 ¤Ç¸«¤Ä¤«¤ë) ½êÍ­¼Ô¤Ç¤â¤Ê¤¯¡¢
455 ¥×¥í¥»¥¹¤¬
456 .B CAP_SYS_ADMIN
457 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤¿¤Ê¤¤¡£
458 .TP
459 .B ERANGE
460 .I cmd
461 °ú¤­¿ô¤Ë
462 .B SETALL
463 ¤Þ¤¿¤Ï
464 .B SETVAL
465 ¤¬»ØÄꤵ¤ì¡¢(½¸¹ç¤Î¥»¥Þ¥Õ¥©¤Î¤É¤ì¤«¤Î)
466 .B semval
467 ¤ËÀßÄꤵ¤ì¤ëÃͤ¬ 0 ¤è¤ê¾®¤µ¤¤¤«¡¢¼ÂÁõ¤ÎÀ©¸Â
468 .B SEMVMX
469 ¤è¤ê¤âÂ礭¤¤¡£
470 .SH ½àµò
471 SVr4, POSIX.1-2001.
472 .\" SVr4 ¤Ë¤Ï¡¢Â¾¤Ë EINVAL, EOVERFLOW ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ­½Ò¤¬¤¢¤ë¡£
473 .SH Ãí°Õ
474 .BR IPC_INFO ,
475 .BR SEM_STAT ,
476 .B SEM_INFO
477 Áàºî¤Ï
478 .BR ipcs (8)
479 ¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤Æ³äÅö¤é¤ì¤¿»ñ¸»¤Ë¤Ä¤¤¤Æ¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¡£
480 ¾­ÍèŪ¤Ë¤Ï¤³¤ì¤é¤ÏÊѹ¹¤µ¤ì¤ë¤«¡¢
481 /proc ¥Õ¥¡¥¤¥ë¡¦¥·¥¹¥Æ¥à¡¦¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
482 .LP
483 \fI¹½Â¤ÂΠsemid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢
484 Linux 2.2 ¤Ç¤Ï
485 .I short
486 ·¿¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï
487 .I long
488 ·¿¤Ë¤Ê¤Ã¤¿¡£
489 ¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶­²¼¤Ç
490 ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£
491 ¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò
492 .I cmd
493 Æâ¤Î
494 .B IPC_64
495 ¥Õ¥é¥°¤Ç¶èÊ̤¹¤ë¡£
496 .PP
497 ½é´ü¤Î¥Ð¡¼¥¸¥ç¥ó¤Î glibc ¤Ç¤Ï¡¢
498 .I semun
499 ¶¦ÍÑÂΤϠ\fI<sys/sem.h>\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤¿¤¬¡¢
500 POSIX.1-2001 ¤Ç¤Ï¸Æ¤Ó½Ð¤·Â¦¤¬¤³¤Î¶¦ÍÑÂΤòÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ë¡£
501 ¤³¤Î¶¦ÍÑÂΤ¬ÄêµÁ¤µ¤ì¤Æ\fI¤¤¤Ê¤¤\fP glibc ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢
502 ¥Þ¥¯¥í
503 .B _SEM_SEMUN_UNDEFINED
504 ¤¬ \fI<sys/sem.h>\fP ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
505 .PP
506 °Ê²¼¤Ï
507 .BR semctl ()
508 ¥³¡¼¥ë¤Ë±Æ¶Á¤¹¤ë¥»¥Þ¥Õ¥©½¸¹ç¤Î¥·¥¹¥Æ¥àÀ©¸Â:
509 .TP
510 .B SEMVMX
511 .B semval
512 ¤ÎºÇÂçÃÍ : ¼ÂÁõ°Í¸ (32767)¡£
513 .LP
514 °Ü¿¢À­¤ò¹â¤á¤ë¤¿¤á¤Î°ìÈÖÎɤ¤ÊýË¡¤Ï¡¢¾ï¤Ë 4 ¸Ä¤Î°ú¤­¿ô¤Ç
515 .BR semctl ()
516 ¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¤¢¤ë¡£
517 .SH ´ØÏ¢¹àÌÜ
518 .BR ipc (2),
519 .BR semget (2),
520 .BR semop (2),
521 .BR capabilities (7),
522 .BR sem_overview (7),
523 .BR svipc (7)