1 .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it)
2 .\" and Copyright 2004, 2005 Michael Kerrisk <mtk.manpages@gmail.com>
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.
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.
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
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
24 .\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
25 .\" Modified Sun Feb 18 01:59:29 2001 by Andries E. Brouwer <aeb@cwi.nl>
26 .\" Modified, 27 May 2004, Michael Kerrisk <mtk.manpages@gmail.com>
27 .\" Added notes on CAP_IPC_OWNER requirement
28 .\" Modified, 17 Jun 2004, Michael Kerrisk <mtk.manpages@gmail.com>
29 .\" Added notes on CAP_SYS_ADMIN requirement for IPC_SET and IPC_RMID
30 .\" Modified, 11 Nov 2004, Michael Kerrisk <mtk.manpages@gmail.com>
31 .\" Language and formatting clean-ups
32 .\" Added msqid_ds and ipc_perm structure definitions
33 .\" 2005-08-02, mtk: Added IPC_INFO, MSG_INFO, MSG_STAT descriptions
35 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
36 .\" all rights reserved.
37 .\" Translated 1997-02-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
38 .\" Updated & Modified 2001-06-04, Yuichi SATO <ysato@h4.dion.ne.jp>
39 .\" Updated & Modified 2002-07-06, Yuichi SATO
40 .\" Updated & Modified 2004-12-31, Yuichi SATO <ysato444@yahoo.co.jp>
41 .\" Updated & Modified 2005-10-10, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
43 .\"WORD: message ¥á¥Ã¥»¡¼¥¸
45 .\"WORD: member ¥á¥ó¥Ð¡¼
46 .\"WORD: structure ¹½Â¤ÂÎ
47 .\"WORD: effective user ID ¼Â¸ú¥æ¡¼¥¶ ID
48 .\"WORD: creator ºîÀ®¼Ô
50 .\"WORD: feature test macro µ¡Ç½¸¡ºº¥Þ¥¯¥í
52 .TH MSGCTL 2 2008-08-06 "Linux" "Linux Programmer's Manual"
54 msgctl \- ¥á¥Ã¥»¡¼¥¸À©¸æÁàºî
57 .B #include <sys/types.h>
58 .B #include <sys/ipc.h>
59 .B #include <sys/msg.h>
61 .BI "int msgctl(int " msqid ", int " cmd ", struct msqid_ds *" buf );
65 ¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¼±ÊÌ»Ò
67 ¤Ç»ØÄꤵ¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼ (message queue) ¤ËÂФ·¤Æ
69 ¤Ç»ØÄꤵ¤ì¤¿À©¸æÁàºî¤ò¹Ô¤Ê¤¦¡£
72 ¥Ç¡¼¥¿¹½Â¤ÂÎ¤Ï \fI<sys/msg.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
77 struct ipc_perm msg_perm; /* ½ê͸¢¤Èµö²Ä */
78 time_t msg_stime; /* ºÇ¸å¤Î msgsnd(2) ¤Î»þ¹ï */
79 time_t msg_rtime; /* ºÇ¸å¤Î msgrcv(2) ¤Î»þ¹ï */
80 time_t msg_ctime; /* ºÇ¸å¤ËÊѹ¹¤¬¹Ô¤ï¤ì¤¿»þ¹ï */
81 unsigned long __msg_cbytes; /* ¥¥å¡¼¤Ë¤¢¤ë¸½ºß¤Î¥Ð¥¤¥È¿ô
83 msgqnum_t msg_qnum; /* ¥¥å¡¼¤Ë¤¢¤ë¸½ºßÆþ¤Ã¤Æ¤¤¤ë
85 msglen_t msg_qbytes; /* ¥¥å¡¼¤Ëµö²Ä¤µ¤ì¤Æ¤¤¤ë
87 pid_t msg_lspid; /* ºÇ¸å¤Î msgsnd(2) ¤Î PID */
88 pid_t msg_lrpid; /* ºÇ¸å¤Î msgrcv(2) ¤Î PID */
94 ¹½Â¤ÂÎ¤Ï \fI<sys/ipc.h>\fP ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë
95 (¶¯Ä´¤µ¤ì¤¿¥Õ¥£¡¼¥ë¥É¤Ï
97 ¤ò»È¤Ã¤ÆÀßÄê²Äǽ¤Ç¤¢¤ë):
102 key_t __key; /* msgget(2) ¤ËÍ¿¤¨¤ë¥¡¼ */
103 uid_t \fBuid\fP; /* ½êͼԤμ¸ú UID */
104 gid_t \fBgid\fP; /* ½êͼԤμ¸ú GID */
105 uid_t cuid; /* ºîÀ®¼Ô¤Î¼Â¸ú UID */
106 gid_t cgid; /* ºîÀ®¼Ô¤Î¼Â¸ú GID */
107 unsigned short \fBmode\fP; /* µö²Ä */
108 unsigned short __seq; /* ¥·¡¼¥±¥ó¥¹ÈÖ¹æ */
118 ¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ«¤é¡¢¥Ý¥¤¥ó¥¿
122 ¹½Â¤ÂΤ˾ðÊó¤ò¥³¥Ô¡¼¤¹¤ë¡£
123 ¸Æ¤Ó½Ð¤·Â¦¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
130 ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤ÎÃͤò¡¢¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿
131 ¥«¡¼¥Í¥ë¡¦¥Ç¡¼¥¿¹½Â¤ÂΤ˽ñ¤¹þ¤ß¡¢
134 ¹½Â¤ÂΤΥá¥ó¥Ð¡¼¤Î¤¦¤Á¡¢¹¹¿·¤µ¤ì¤ë¤â¤Î¤ò°Ê²¼¤Ë¼¨¤¹:
140 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¡¢¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Î½êͼÔ
143 .RI ( msg_perm.cuid )
144 ¤È°ìÃפ¹¤ë¤«¡¢¸Æ¤Ó½Ð¤·¸µ¤¬Æø¢¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
146 ¤ò¥·¥¹¥Æ¥à¡¦¥Ñ¥é¥á¡¼¥¿¤Î
148 ¤òĶ¤¨¤ÆÀßÄꤹ¤ë¤Ë¤Ï¡¢Å¬ÀÚ¤ÊÆø¢ (Linux ¤Ç¤Ï
150 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability)) ¤¬É¬ÍפǤ¢¤ë¡£
153 ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ò¤¿¤À¤Á¤Ëºï½ü¤¹¤ë¡£
154 Ʊ»þ¤Ë¤½¤Î¹½Â¤ÂΤÎÆɤ߽ñ¤¤ÎÂÔ¤Á¾õÂ֤ˤ¢¤Ã¤¿¥×¥í¥»¥¹¤ËÄÌÃΤ¹¤ë
160 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬Å¬ÀÚ¤ÊÆø¢¤ò»ý¤Ã¤Æ¤¤¤ë¤«¡¢
161 ¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ÎºîÀ®¼Ô¤«
162 ½êͼԤμ¸ú¥æ¡¼¥¶ ID ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
164 .BR IPC_INFO " (Linux ¸ÇÍ)"
165 ¥·¥¹¥Æ¥àÁ´ÂΤǤΥá¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤ÎÀ©¸Â¤È¥Ñ¥é¥á¡¼¥¿¤Ë´Ø¤¹¤ë¾ðÊó¤ò¡¢
167 ¤¬»Ø¤¹¹½Â¤ÂΤËÆþ¤ì¤ÆÊÖ¤¹¡£
170 ·¿¤Ç¤¢¤ë (¤½¤Î¤¿¤á¥¥ã¥¹¥È¤¬É¬ÍפǤ¢¤ë)¡£
174 µ¡Ç½¸¡ºº¥Þ¥¯¥í¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë
176 ¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
181 int msgpool; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Ç¡¼¥¿¤ÎÊÝ»ý¤Ë»ÈÍѤµ¤ì¤ë
182 ¥Ð¥Ã¥Õ¥¡¡¦¥×¡¼¥ë¤ÎÂ礤µ (1024 ¥Ð¥¤¥Èñ°Ì);
183 ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
184 int msgmap; /* ¥á¥Ã¥»¡¼¥¸¡¦¥Þ¥Ã¥×¤ÎºÇÂ票¥ó¥È¥ê¿ô;
185 ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
186 int msgmax; /* °ì¤Ä¤Î¥á¥Ã¥»¡¼¥¸¤Ë½ñ¤¹þ¤ß²Äǽ¤Ê
188 int msgmnb; /* °ì¤Ä¤Î¥¥å¡¼¤Ë½ñ¤¹þ¤ß²Äǽ¤ÊºÇÂç¥Ð¥¤¥È¿ô;
189 (msgget(2) ¤Ç¤Î) ¥¥å¡¼ºîÀ®Ãæ¤Î msg_qbytes
190 ¤Î½é´ü²½¤Ë»ÈÍѤµ¤ì¤ë */
191 int msgmni; /* ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Î¿ô¤ÎºÇÂçÃÍ */
192 int msgssz; /* ¥á¥Ã¥»¡¼¥¸¡¦¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º;
193 ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
194 int msgtql; /* ¥·¥¹¥Æ¥à¾å¤ÎÁ´¥¥å¡¼¤ÎºÇÂç¥á¥Ã¥»¡¼¥¸¿ô;
195 ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
196 unsigned short int msgseg;
197 /* ºÇÂ祻¥°¥á¥ó¥È¿ô; ¥«¡¼¥Í¥ëÆâ¤Ç¤Ï̤»ÈÍÑ */
208 ¤Ë¤¢¤ëƱ¤¸Ì¾Á°¤Î¥Õ¥¡¥¤¥ë·Ðͳ¤ÇÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
213 .BR MSG_INFO " (Linux ¸ÇÍ)"
215 ¤Î¤È¤¤ÈƱ¤¸¾ðÊó¤ò³ÊǼ¤·¤¿
218 ⤷¡¢°Ê²¼¤Î¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤¬
219 ¾ÃÈñ¤·¤Æ¤¤¤ë¥·¥¹¥Æ¥à»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊ󤬳ÊǼ¤µ¤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£
221 ¥Õ¥£¡¼¥ë¥É¤Ï¸½ºß¥·¥¹¥Æ¥à¾å¤Ë¸ºß¤¹¤ë¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Î¿ô¤òÊÖ¤¹¡£
223 ¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ë¥á¥Ã¥»¡¼¥¸Áí¿ô¤òÊÖ¤¹¡£
225 ¥Õ¥£¡¼¥ë¥É¤Ï¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥¥å¡¼¤ËÆþ¤Ã¤Æ¤¤¤ëÁ´¥á¥Ã¥»¡¼¥¸¤Î
228 .BR MSG_STAT " (Linux ¸ÇÍ)"
235 °ú¤¿ô¤Ï¡¢¥¥å¡¼¼±Ê̻ҤǤϤʤ¯¡¢¥·¥¹¥Æ¥à¾å¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼
236 ¤Ë´Ø¤¹¤ë¾ðÊó¤ò´ÉÍý¤¹¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ç¤¢¤ë¡£
246 Áàºî¤Ï¡¢À®¸ù¤¹¤ë¤È¡¢Á´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò
247 ´ÉÍý¤·¤Æ¤¤¤ë¥«¡¼¥Í¥ë¤ÎÆâÉôÇÛÎó¤Î»ÈÍÑÃ楨¥ó¥È¥ê¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤Î
249 (¤³¤Î¾ðÊó¤Ï¡¢¥·¥¹¥Æ¥à¤ÎÁ´¤Æ¤Î¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Ë´Ø¤¹¤ë¾ðÊó¤ò
252 Áàºî¤ò·«¤êÊÖ¤·¼Â¹Ô¤¹¤ëºÝ¤Ë»ÈÍѤǤ¤ë)¡£
256 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò»ý¤Ä¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤Î¼±Ê̻ҤòÊÖ¤¹¡£
258 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
264 ¤Ï°Ê²¼¤ÎÃͤÎÃæ¤Î¤É¤ì¤«°ì¤Ä¤ËÀßÄꤵ¤ì¤ë:
273 ¤ËÅù¤·¤¤¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤¬¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼
275 ¤ËÂФ¹¤ëÆɤ߹þ¤ßµö²Ä¤ò»ý¤Ã¤Æ¤ª¤é¤º¡¢¤«¤Ä
277 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£
288 ¤Ç»Ø¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤Ê¤¤¡£
291 ¥á¥Ã¥»¡¼¥¸¡¦¥¥å¡¼¤¬ºï½ü¤µ¤ì¤¿¡£
297 ¤ËÉÔÀµ¤ÊÃͤ¬ÀßÄꤵ¤ì¤¿¡£
302 ¤Ç»ØÄꤵ¤ì¤¿¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤ¬¸½ºß̤»ÈÍѤÎÇÛÎó¤Î¥¹¥í¥Ã¥È¤ò»²¾È¤¤¤Æ¤¤¤¿¡£
311 ¤Ç¤¢¤ë¤¬¡¢¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¼Â¸ú¥æ¡¼¥¶ ID ¤¬¥á¥Ã¥»¡¼¥¸¥¥å¡¼¤Î
313 ¤È¤·¤Æ¸«¤Ä¤«¤ë) ºîÀ®¼Ô
316 ¤È¤·¤Æ¸«¤Ä¤«¤ë) ½êͼԤΤ¤¤º¤ì¤Ç¤â¤Ê¤¯¡¢
317 ¤«¤Ä¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤ËÆø¢ (Linux ¤Ç¤Ï
319 ¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£) ¤¬¤Ê¤¤¡£
322 .\" SVID ¤Ë¤Ï EIDRM ¥¨¥é¡¼¤Ë¤Ä¤¤¤Æ¤Îµ½Ò¤Ï¤Ê¤¤¡£
329 ¥×¥í¥°¥é¥à¤Ç³ä¤êÅö¤ÆºÑ¤Î»ñ¸»¤Ë´Ø¤¹¤ë¾ðÊó¤òÄ󶡤¹¤ë¤¿¤á¤Ë
330 »ÈÍѤµ¤ì¤Æ¤¤¤ë¡£¾Íè¡¢¤³¤ì¤é¤ÎÁàºî¤ÏÊѹ¹¤µ¤ì¤¿¤ê¡¢
331 /proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë°ÜÆ°¤µ¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
334 \fIstruct msqid_ds\fP Æâ¤Î¿¤¯¤Î¥Õ¥£¡¼¥ë¥É¤Ï¡¢
337 ¤À¤Ã¤¿¤¬¡¢Linux 2.4 ¤Ç¤Ï
340 ¤³¤ÎÍøÅÀ¤òÀ¸¤«¤¹¤Ë¤Ï¡¢glibc-2.1.91 °Ê¹ß¤Î´Ä¶²¼¤Ç
341 ºÆ¥³¥ó¥Ñ¥¤¥ë¤¹¤ì¤Ð½½Ê¬¤Ç¤¢¤ë¡£
342 (¥«¡¼¥Í¥ë¤Ï¿·¤·¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤È¸Å¤¤·Á¼°¤Î¸Æ¤Ó½Ð¤·¤ò
351 .BR capabilities (7),