OSDN Git Service

(split) Import translated manuals from JM CVS Repository.
[linuxjm/LDP_man-pages.git] / release / man2 / wait.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" Copyright (c) 1993 by Thomas Koenig <ig25@rz.uni-karlsruhe.de>
4 .\" and Copyright (c) 2004 by Michael Kerrisk <mtk.manpages@gmail.com>
5 .\"
6 .\" Permission is granted to make and distribute verbatim copies of this
7 .\" manual provided the copyright notice and this permission notice are
8 .\" preserved on all copies.
9 .\"
10 .\" Permission is granted to copy and distribute modified versions of this
11 .\" manual under the conditions for verbatim copying, provided that the
12 .\" entire resulting derived work is distributed under the terms of a
13 .\" permission notice identical to this one.
14 .\"
15 .\" Since the Linux kernel and libraries are constantly changing, this
16 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
17 .\" responsibility for errors or omissions, or for damages resulting from
18 .\" the use of the information contained herein.  The author(s) may not
19 .\" have taken the same level of care in the production of this manual,
20 .\" which is licensed free of charge, as they might when working
21 .\" professionally.
22 .\"
23 .\" Formatted or processed versions of this manual, if unaccompanied by
24 .\" the source, must acknowledge the copyright and authors of this work.
25 .\" License.
26 .\"
27 .\" Modified Sat Jul 24 13:30:06 1993 by Rik Faith <faith@cs.unc.edu>
28 .\" Modified Sun Aug 21 17:42:42 1994 by Rik Faith <faith@cs.unc.edu>
29 .\"          (Thanks to Koen Holtman <koen@win.tue.nl>)
30 .\" Modified Wed May 17 15:54:12 1995 by Rik Faith <faith@cs.unc.edu>
31 .\"           To remove *'s from status in macros (Thanks to Michael Shields).
32 .\" Modified as suggested by Nick Duffek <nsd@bbc.com>, aeb, 960426
33 .\" Modified Mon Jun 23 14:09:52 1997 by aeb - add EINTR.
34 .\" Modified Thu Nov 26 02:12:45 1998 by aeb - add SIGCHLD stuff.
35 .\" Modified Mon Jul 24 21:37:38 2000 by David A. Wheeler
36 .\"          <dwheeler@dwheeler.com> - noted thread issues.
37 .\" Modified 26 Jun 01 by Michael Kerrisk
38 .\"          Added __WCLONE, __WALL, and __WNOTHREAD descriptions
39 .\" Modified 2001-09-25, aeb
40 .\" Modified 26 Jun 01 by Michael Kerrisk, <mtk.manpages@gmail.com>
41 .\"     Updated notes on setting disposition of SIGCHLD to SIG_IGN
42 .\" 2004-11-11, mtk
43 .\"     Added waitid(2); added WCONTINUED and WIFCONTINUED()
44 .\"     Added text on SA_NOCLDSTOP
45 .\"     Updated discussion of SA_NOCLDWAIT to reflect 2.6 behavior
46 .\"     Much other text rewritten
47 .\" 2005-05-10, mtk, __W* flags can't be used with waitid()
48 .\" 2008-07-04, mtk, removed erroneous text about SA_NOCLDSTOP
49 .\"
50 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya all rights reserved.
51 .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved.
52 .\" Translated 1997-03-04, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
53 .\" Modified 2000-09-23, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
54 .\" Updated 2001-06-25, Kentaro Shirakata <argrath@ub32.org>
55 .\" Updated 2001-10-15, Kentaro Shirakata <argrath@ub32.org>
56 .\" Updated 2001-12-13, Kentaro Shirakata <argrath@ub32.org>
57 .\" Updated 2002-10-21, Kentaro Shirakata <argrath@ub32.org>
58 .\" Updated 2003-01-27, Kentaro Shirakata <argrath@ub32.org>
59 .\" Updated 2003-09-12, Kentaro Shirakata <argrath@ub32.org>
60 .\" Updated 2005-03-19, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
61 .\" Updated 2005-12-26, Akihiro MOTOKI
62 .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05
63 .\"
64 .\"WORD:        signal handling         ¥·¥°¥Ê¥ë½èÍý
65 .\"WORD:        suspend                 Ää»ß(suspend)
66 .\"WORD:        zombie                  ¥¾¥ó¥Ó(zombie)
67 .\"WORD:        child process           »Ò¥×¥í¥»¥¹
68 .\"WORD:        process group           ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×
69 .\"WORD:        process group ID        ¥×¥í¥»¥¹¡¦¥°¥ë¡¼¥×ID
70 .\"WORD:        stop                    Ää»ß(stop)
71 .\"WORD:        effective user ID       ¼Â¸ú¥æ¡¼¥¶¡¼ID
72 .\"WORD:        block                   ¶Ø»ß(block)
73 .\"
74 .TH WAIT 2 2009-04-21 "Linux" "Linux Programmer's Manual"
75 .SH Ì¾Á°
76 wait, waitpid, waitid \- ¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤òÂÔ¤Ä
77 .SH ½ñ¼°
78 .B #include <sys/types.h>
79 .br
80 .B #include <sys/wait.h>
81 .sp
82 .BI "pid_t wait(int *" "status" );
83
84 .BI "pid_t waitpid(pid_t " pid ", int *" status ", int " options );
85
86 .BI "int waitid(idtype_t " idtype ", id_t " id \
87 ", siginfo_t *" infop ", int " options );
88 .sp
89 .in -4n
90 glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
91 .RB ( feature_test_macros (7)
92 »²¾È):
93 .in
94 .sp
95 .BR waitid ():
96 _SVID_SOURCE || _XOPEN_SOURCE
97 .SH ÀâÌÀ
98 ¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î
99 ¾õÂÖÊѲ½¤òÂÔ¤Á¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿¤½¤Î»Ò¥×¥í¥»¥¹¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤Î¤Ë
100 »ÈÍѤµ¤ì¤ë¡£
101 ¾õÂÖÊѲ½¤È¤Ï°Ê²¼¤Î¤¤¤º¤ì¤«¤Ç¤¢¤ë:
102 »Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎÄä»ß¡¢
103 ¥·¥°¥Ê¥ë¤Ë¤è¤ë»Ò¥×¥í¥»¥¹¤ÎºÆ³«¡£
104 »Ò¥×¥í¥»¥¹¤¬½ªÎ»¤·¤¿¾ì¹ç¤Ï¡¢wait ¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢
105 ¥·¥¹¥Æ¥à¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë´ØÏ¢¤¹¤ë¥ê¥½¡¼¥¹¤ò²òÊü¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£
106 wait ¤¬¼Â¹Ô¤µ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï
107 ¡Ö¥¾¥ó¥Ó¡×¾õÂ֤ǻĤ곤±¤ë (²¼µ­¤ÎÃí°Õ¤Î¾Ï¤ò»²¾È¤Î¤³¤È)¡£
108
109 »Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬¤¹¤Ç¤ËȯÀ¸¤·¤Æ¤¤¤¿¾ì¹ç¡¢¤³¤ì¤é¤Î¥³¡¼¥ë¤Ï
110 ¤¹¤°¤ËÉüµ¢¤¹¤ë¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤«¡¢
111 ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬ÃæÃǤµ¤ì¤ë¤Þ¤Ç¡¢
112 Ää»ß (block) ¤¹¤ë (¸å¼Ô¤Ï¡¢
113 .BR sigaction (2)
114 ¤Î
115 .B SA_RESTART
116 ¥Õ¥é¥°¤Ë¤è¤ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¼«Æ°Åª¤ËºÆ¥¹¥¿¡¼¥È¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤
117 ¾ì¹ç¤ÎÆ°ºî¤Ç¤¢¤ë)¡£
118 °Ê²¼¤ÎÀâÌÀ¤Ç¤Ï¡¢¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿¤¬¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¤¤º¤ì¤«¤Ë
119 ¤è¤Ã¤ÆÂÔ¤¿¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤ò
120 .I waitable
121 (ÂÔ¤Á²Äǽ) ¤È¸Æ¤Ö¡£
122 .SS "wait() ¤È waitpid()"
123 .BR wait ()
124 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç
125 ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£
126 °Ê²¼¤ÎÆó¤Ä¤Î¸Æ¤Ó½Ð¤·¤ÏÅù²Á¤Ç¤¢¤ë:
127 .nf
128
129     wait(&status);
130
131     waitpid(\-1, &status, 0);
132 .fi
133
134 .BR waitpid ()
135 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢
136 .I pid
137 °ú¤­¿ô¤Ç»ØÄꤷ¤¿»Ò¥×¥í¥»¥¹¤Î¾õÂÖÊѲ½¤¬µ¯¤³¤ë¤Þ¤Ç¡¢
138 ¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢
139 .BR waitpid ()
140 ¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤À¤±¤òÂԤĤ¬¡¢¤³¤ÎÆ°ºî¤Ï
141 .I options
142 °ú¤­¿ô¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¢¤ë¡£
143
144 .I pid
145 ¤Ë»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê:
146 .IP "< \-1"
147 ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬
148 .I pid
149 ¤ÎÀäÂÐÃͤËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¤òÂԤġ£
150 .IP \-1
151 »Ò¥×¥í¥»¥¹¤Î¤É¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÂԤġ£
152 .IP 0
153 ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬¸Æ¤Ó½Ð¤·¤¿¥×¥í¥»¥¹¤Î¤â¤Î¤ÈÅù¤·¤¤
154 »Ò¥×¥í¥»¥¹¤òÂԤġ£
155 .IP "> 0"
156 ¥×¥í¥»¥¹ID ¤¬
157 .I pid
158 ¤ËÅù¤·¤¤»Ò¥×¥í¥»¥¹¤òÂԤġ£
159 .PP
160 .I options
161 ¤ÎÃͤϼ¡¤ÎÄê¿ô¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤǤ¢¤ë:
162 .TP 12
163 .B WNOHANG
164 ¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤¿»Ò¥×¥í¥»¥¹¤¬¤Ê¤¤¾ì¹ç¤Ë¤¹¤°¤ËÉüµ¢¤¹¤ë¡£
165 .TP
166 .B WUNTRACED
167 »Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë (»Ò¥×¥í¥»¥¹¤¬
168 .BR ptrace (2)
169 ¤Ç¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï½ü¤¯)¡£
170 ¤³¤Î¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ç¤â¡¢Ää»ß¤·¤¿¥×¥í¥»¥¹¤¬
171 ¡Ö¥È¥ì¡¼¥¹ (traced)¡×¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¤¬Êó¹ð¤µ¤ì¤ë¡£
172 .TP
173 .BR WCONTINUED " (Linux 2.6.10 °Ê¹ß)"
174 Ää»ß¤·¤¿»Ò¥×¥í¥»¥¹¤¬
175 .B SIGCONT
176 ¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¤âÉüµ¢¤¹¤ë¡£
177 .PP
178 (Linux ÀìÍÑ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¸å½Ò¤¹¤ë)
179 .PP
180 .I status
181 ¤¬ NULL ¤Ç¤Ê¤±¤ì¤Ð¡¢
182 .BR wait ()
183 ¤ä
184 .BR waitpid ()
185 ¤Ï
186 .I status
187 ¤Ç»Ø¤¹ \fIint\fP ¤Ë¾õÂÖ¾ðÊó¤ò³ÊǼ¤¹¤ë¡£
188 ¤³¤ÎÀ°¿ô¤Ï°Ê²¼¤Î¥Þ¥¯¥í¤ò»È¤Ã¤Æ¸¡ºº¤Ç¤­¤ë¡£
189 (¤³¤ì¤é¤Î¥Þ¥¯¥í¤Î°ú¤­¿ô¤Ë¤Ï¡¢
190 .BR wait ()
191 ¤ä
192 .BR waitpid ()
193 ¤¬½ñ¤­¹þ¤ó¤ÀÀ°¿ô¤½¤Î¤â¤Î¤ò»ØÄꤹ¤ë¡£¥Ý¥¤¥ó¥¿¤Ç¤Ï¤Ê¤¤!)
194 .TP
195 .BI WIFEXITED( status )
196 »Ò¥×¥í¥»¥¹¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£
197 ¡ÖÀµ¾ï¤Ë¡×¤È¤Ï¡¢
198 .BR exit (3)
199 ¤«
200 .BR _exit (2)
201 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢¤â¤·¤¯¤Ï
202 main() ¤«¤éÉüµ¢¤·¤¿¾ì¹ç¤Ç¤¢¤ë¡£
203 .TP
204 .BI WEXITSTATUS( status )
205 »Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤¹¡£
206 ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ï
207 .I status
208 °ú¤­¿ô¤Î²¼°Ì 8¥Ó¥Ã¥È¤Ç¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢
209 .BR exit (3)
210 ¤ä
211 .BR _exit (2)
212 ¤Î¸Æ¤Ó½Ð¤·»þ¤ËÅϤµ¤ì¤¿ÃÍ¡¢¤â¤·¤¯¤Ï main() ¤Î return Ê¸¤Î
213 °ú¤­¿ô¤È¤·¤Æ»ØÄꤵ¤ì¤¿ÃͤǤ¢¤ë¡£
214 ¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï
215 .B WIFEXITED
216 ¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
217 .TP
218 .BI WIFSIGNALED( status )
219 »Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤Ë¤è¤ê½ªÎ»¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£
220 .TP
221 .BI WTERMSIG( status )
222 »Ò¥×¥í¥»¥¹½ªÎ»¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£
223 ¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï
224 .B WIFSIGNALED
225 ¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
226 .TP
227 .BI WCOREDUMP( status )
228 »Ò¥×¥í¥»¥¹¤¬¥³¥¢¥À¥ó¥×¤òÀ¸À®¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£
229 ¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï
230 .B WIFSIGNALED
231 ¤¬¿¿¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
232 ¤³¤Î¥Þ¥¯¥í¤Ï POSIX.1-2001 ¤Ç¤Ïµ¬Äꤵ¤ì¤Æ¤ª¤é¤º¡¢
233 (AIX, SunOS ¤Ê¤É¤Î) ¤¤¤¯¤Ä¤«¤Î Unix ¤Î¼ÂÁõ¤Ç¤ÏÍøÍѤǤ­¤Ê¤¤¡£
234 ɬ¤º #ifdef WCOREDUMP ... #endif ¤Ç³ç¤Ã¤Æ»ÈÍѤ¹¤ë¤³¤È¡£
235 .TP
236 .BI WIFSTOPPED( status )
237 »Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£
238 ¤³¤ì¤¬¿¿¤Ë¤Ê¤ë¤Î¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬
239 .B WUNTRACED
240 ¤ò»ØÄꤷ¤Æ¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¤«¡¢»Ò¥×¥í¥»¥¹¤¬¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
241 .RB ( ptrace (2)
242 »²¾È) ¤À¤±¤Ç¤¢¤ë¡£
243 .TP
244 .BI WSTOPSIG( status )
245 »Ò¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤¿¥·¥°¥Ê¥ë¤ÎÈÖ¹æ¤òÊÖ¤¹¡£
246 ¤³¤Î¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ë¤Î¤Ï
247 .B WIFSTOPPED
248 ¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¤À¤±¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
249 .TP
250 .BI WIFCONTINUED( status )
251 (Linux 2.6.10 °Ê¹ß)
252 »Ò¥×¥í¥»¥¹¤¬
253 .B SIGCONT
254 ¤ÎÇÛÁ÷¤Ë¤è¤êºÆ³«¤·¤¿¾ì¹ç¤Ë¿¿¤òÊÖ¤¹¡£
255 .SS "waitid()"
256 .BR waitid ()
257 ¥·¥¹¥Æ¥à¥³¡¼¥ë (Linux 2.6.9 °Ê¹ß¤ÇÍøÍѲÄǽ) ¤ò»È¤¦¤È¡¢
258 »Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ë¤Ä¤¤¤Æ¤è¤êºÙ¤«¤ÊÀ©¸æ¤¬¤Ç¤­¤ë¡£
259
260 °ú¤­¿ô
261 .I idtype
262 ¤È
263 .I id
264 ¤Ç¤É¤Î»Ò¥×¥í¥»¥¹¤òÂԤĤ«¤òÁªÂò¤¹¤ë:
265 .IP "\fIidtype\fP == \fBP_PID\fP"
266 ¥×¥í¥»¥¹ID ¤¬
267 .I id
268 ¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£
269 .IP "\fIidtype\fP == \fBP_PGID\fP"
270 ¥×¥í¥»¥¹¥°¥ë¡¼¥×ID ¤¬
271 .I id
272 ¤È°ìÃפ¹¤ë»Ò¥×¥í¥»¥¹¤òÂԤġ£
273 .IP "\fIidtype\fP == \fBP_ALL\fP"
274 »Ò¥×¥í¥»¥¹Á´Éô¤òÂоݤËÂԤġ£
275 .I id
276 ¤Ï̵»ë¤µ¤ì¤ë¡£
277 .PP
278 »Ò¥×¥í¥»¥¹¤Î¤É¤Î¾õÂÖÊѲ½¤òÂԤĤ«¤Ï°Ê²¼¤Î¥Õ¥é¥°¤Ç»ØÄꤹ¤ë
279 .RI ( options
280 ¤Ë¤Ï 1¸Ä°Ê¾å¤Î¥Õ¥é¥°¤ÎÏÀÍýϤò¤È¤Ã¤Æ»ØÄꤹ¤ë):
281 .TP 12
282 .B WEXITED
283 »Ò¥×¥í¥»¥¹¤Î½ªÎ»¤òÂԤġ£
284 .TP
285 .B WSTOPPED
286 »Ò¥×¥í¥»¥¹¤¬¥·¥°¥Ê¥ë¤ÎÇÛÁ÷¤Ë¤è¤êÄä»ß¤¹¤ë¤Î¤òÂԤġ£
287 .TP
288 .B WCONTINUED
289 (Ää»ß¤·¤Æ¤¤¤¿) »Ò¥×¥í¥»¥¹¤¬
290 .B SIGCONT
291 ¤¬ÇÛÁ÷¤µ¤ì¤ÆºÆ³«¤¹¤ë¤Î¤òÂԤġ£
292 .PP
293 ¤µ¤é¤Ë°Ê²¼¤Î¥Õ¥é¥°¤òÏÀÍýϤηÁ¤Ç
294 .I options
295 ¤Ë»ØÄê¤Ç¤­¤ë:
296 .TP 12
297 .B WNOHANG
298 .BR waitpid ()
299 ¤ÈƱÍÍ¡£
300 .TP
301 .B WNOWAIT
302 waitable ¾õÂÖ¤Î¥×¥í¥»¥¹¤ò¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë¡£¤³¤Î¸å¤Ç wait ¥³¡¼¥ë¤ò
303 »È¤Ã¤Æ¡¢Æ±¤¸»Ò¥×¥í¥»¥¹¤Î¾õÂÖ¾ðÊó¤ò¤â¤¦°ìÅÙ¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
304 .PP
305 À®¸ù¤·¤¿¾ì¹ç¤Ë¤Ï¡¢
306 .BR waitid ()
307 ¤Ï
308 .I infop
309 ¤¬»Ø¤¹
310 .I siginfo_t
311 ¹½Â¤ÂΤΰʲ¼¤Î¥Õ¥£¡¼¥ë¥É¤òÀßÄꤹ¤ë:
312 .TP 12
313 \fIsi_pid\fP
314 »Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID¡£
315 .TP
316 \fIsi_uid\fP
317 »Ò¥×¥í¥»¥¹¤Î¼Â¥æ¡¼¥¶ID
318 (¤³¤Î¥Õ¥£¡¼¥ë¥É¤Ï¾¤Î¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤ÏÀßÄꤵ¤ì¤Ê¤¤)¡£
319 .TP
320 \fIsi_signo\fP
321 ¾ï¤Ë
322 .B SIGCHLD
323 ¤¬ÀßÄꤵ¤ì¤ë¡£
324 .TP
325 \fIsi_status\fP
326 .BR _exit (2)
327 (¤«
328 .BR exit (3))
329 ¤Ë»ØÄꤵ¤ì¤¿»Ò¥×¥í¥»¥¹¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢¤â¤·¤¯¤Ï
330 »Ò¥×¥í¥»¥¹¤Î½ªÎ»¡¢Ää»ß¡¢ºÆ³«¤Î¸¶°ø¤È¤Ê¤Ã¤¿¥·¥°¥Ê¥ë¤¬ÀßÄꤵ¤ì¤ë¡£
331 ¤³¤Î¥Õ¥£¡¼¥ë¥É¤ò¤É¤¦²ò¼á¤¹¤ë¤«¤Ï¡¢
332 .I si_code
333 ¥Õ¥£¡¼¥ë¥É¤ò»²¾È¤·¤Æ·è¤á¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
334 .TP
335 \fIsi_code\fP
336 °Ê²¼¤Î¤¤¤º¤ì¤«¤¬ÀßÄꤵ¤ì¤ë:
337 .B CLD_EXITED
338 (»Ò¥×¥í¥»¥¹¤¬
339 .BR _exit (2)
340 ¤ò¸Æ¤Ó½Ð¤·¤¿);
341 .B CLD_KILLED
342 (¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¤¿);
343 .B CLD_DUMPED
344 (¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ kill ¤µ¤ì¡¢¥³¥¢¡¦¥À¥ó¥×¤¬¹Ô¤ï¤ì¤¿);
345 .B CLD_STOPPED
346 (¥·¥°¥Ê¥ë¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬Ää»ß¤·¤¿);
347 .BR CLD_TRAPPED
348 (¥È¥ì¡¼¥¹¤µ¤ì¤Æ¤¤¤¿»Ò¥×¥í¥»¥¹¤¬¥È¥é¥Ã¥×¤ò¼õ¿®¤·¤¿);
349 .B CLD_CONTINUED
350 .RB ( SIGCONT
351 ¤Ë¤è¤ê»Ò¥×¥í¥»¥¹¤¬ºÆ³«¤µ¤ì¤¿)¡£
352 .PP
353 .B WNOHANG
354 ¤¬
355 .I options
356 ¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
357 waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
358 .BR waitid ()
359 ¤Ï¤¹¤°¤Ë 0 ¤òÊÖ¤¹¡£¤³¤Î¤È¤­¡¢
360 .I infop
361 ¤¬»Ø¤¹
362 .I siginfo_t
363 ¹½Â¤ÂΤÎÆâÍƤÏÉÔÄê¤Ç¤¢¤ë¡£
364 .\" POSIX.1-2001 ¤Ç¤Ï¡¢ÉÔÄê¤Î²ÄǽÀ­¤ò»Ä¤·¤Æ¤¤¤ë¡£
365 .\" (Linux ¤ò´Þ¤à) ¤Û¤È¤ó¤É¤Î¼ÂÁõ¤Ç¤Ï¡¢¤³¤Î¾ì¹ç¤Ë¹½Â¤ÂΤò 0 ¤ÇËä¤á¤ë¤¬¡¢
366 .\" ¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Î¼ÂÁõ (AIX 5.1) ¤Ç¤Ï¤½¤¦¤Ê¤é¤Ê¤¤¡£ -- MTK Nov 04
367 ¤³¤Î¾ì¹ç¤ò waitable ¾õÂÖ¤Î»Ò¥×¥í¥»¥¹¤¬¤¢¤Ã¤¿¾ì¹ç¤È¶èÊ̤¹¤ë¤Ë¤Ï¡¢
368 .BR waitid ()
369 ¤ò¸Æ¤Ó½Ð¤¹Á°¤Ë
370 .I si_pid
371 ¤ò 0 ¤Ë¤·¤Æ¤ª¤­¡¢¥³¡¼¥ë¤¬Éüµ¢¤·¤¿¸å¤Ç¤³¤Î¥Õ¥£¡¼¥ë¥É¤¬ 0 °Ê³°¤ÎÃͤ«¤É¤¦¤«
372 ¤ò¥Á¥§¥Ã¥¯¤¹¤ì¤Ð¤è¤¤¡£
373 .SH ÊÖ¤êÃÍ
374 .BR wait ():
375 À®¸ù¤¹¤ë¤È¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£
376 ¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£
377
378 .BR waitpid ():
379 À®¸ù¤¹¤ë¤È¡¢¾õÂÖ¤¬ÊѲ½¤·¤¿»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ID ¤òÊÖ¤¹¡£
380 .B WNOHANG
381 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
382 .I pid
383 ¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤¬°ì¤Ä°Ê¾å¸ºß¤¹¤ë¤¬¡¢¤É¤Î»Ò¥×¥í¥»¥¹¤Ç¤â
384 ¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢ 0 ¤òÊÖ¤¹¡£
385 ¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£
386
387 .BR waitid ():
388 À®¸ù¤¹¤ë¤È 0 ¤òÊÖ¤¹¡£
389 .B WNOHANG
390 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
391 .I pid
392 ¤Ç»Ø¼¨¤µ¤ì¤¿»Ò¥×¥í¥»¥¹¤Ç¾õÂÖÊѲ½¤¬µ¯¤³¤Ã¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¤â
393 0 ¤òÊÖ¤¹¡£
394 ¥¨¥é¡¼¤Î¾ì¹ç \-1 ¤òÊÖ¤¹¡£
395 .\" FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
396 .\" returns the PID of the child.  Either this is a bug, or it is intended
397 .\" behavior that needs to be documented.  See my Jan 2009 LKML mail
398 .\" "waitid() return value strangeness when infop is NULL".
399 ¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¤¤¤º¤ì¤â
400 .I errno
401 ¤ËŬÀÚ¤ÊÃͤòÀßÄꤹ¤ë¡£
402 .SH ¥¨¥é¡¼
403 .TP
404 .B ECHILD
405 .RB ( wait ()
406 ¤Î¾ì¹ç)
407 ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Ë¤Ï¡¢wait ¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¤Ê¤¤¡£
408 .TP
409 .B ECHILD
410 .RB ( waitpid ()
411 ¤«
412 .BR waitid ()
413 ¤Î¾ì¹ç)
414 .I pid
415 .RB ( waitpid ())
416 ¤«
417 .I idtype
418 ¤È
419 .I id
420 .RB ( waitid ())
421 ¤Ç»ØÄꤷ¤¿¥×¥í¥»¥¹¤¬Â¸ºß¤·¤Ê¤¤¤«¡¢¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Ç¤Ê¤¤
422 .RB ( SIGCHLD
423 ¤ÎÆ°ºî¤Ë
424 .B SIG_IGN
425 ¤òÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¡¢¼«Ê¬¼«¿È¤Î»Ò¥×¥í¥»¥¹¤Ç¤âµ¯¤³¤ê¤¦¤ë¡£
426 ¥¹¥ì¥Ã¥É¤Ë´Ø¤·¤Æ¤Ï¡ÖLinux ¤Ç¤ÎÃí°Õ¡×¤ÎÀá¤â»²¾È¤¹¤ë¤³¤È)¡£
427 .TP
428 .B EINTR
429 .B WNOHANG
430 ¤¬ÀßÄꤵ¤ì¤Æ¤ª¤é¤º¡¢¶Ø»ß (block) ¤µ¤ì¤Æ¤¤¤Ê¤¤¥·¥°¥Ê¥ë¤ä
431 .B SIGCHLD
432 ¤ò¼õ¿®¤·¤¿¡£
433 .BR signal (7)
434 »²¾È¡£
435 .TP
436 .B EINVAL
437 .I options
438 °ú¤­¿ô¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
439 .SH ½àµò
440 SVr4, 4.3BSD, POSIX.1-2001.
441 .SH Ãí°Õ
442 ½ªÎ»¤·¤¿¤¬¡¢wait ¤µ¤ì¤Æ¤¤¤Ê¤¤»Ò¥×¥í¥»¥¹¤Ï¡Ö¥¾¥ó¥Ó¡×¤Ë¤Ê¤ë¡£
443 ¸å¤Ç¿Æ¥×¥í¥»¥¹¤¬ wait ¤ò¼Â¹Ô¤·¤Æ»Ò¥×¥í¥»¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¡¢
444 ¥«¡¼¥Í¥ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ë¤Ä¤¤¤ÆºÇ¾®¸Â¤Î¾ðÊó (PID¡¢½ªÎ»¥¹¥Æ¡¼¥¿¥¹¡¢
445 ¥ê¥½¡¼¥¹»ÈÍѾõ¶·) ¤òÊÝ»ý¤¹¤ë¡£
446 ¥¾¥ó¥Ó¥×¥í¥»¥¹¤Ï¡¢ wait ¤Ë¤è¤Ã¤Æ¥·¥¹¥Æ¥à¤«¤éºï½ü¤µ¤ì¤Ê¤¤¸Â¤ê¡¢
447 ¥«¡¼¥Í¥ë¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤Î 1 ¥¨¥ó¥È¥ê¤ò¾ÃÈñ¤¹¤ë¡£¤³¤Î¥×¥í¥»¥¹¥Æ¡¼¥Ö¥ë¤¬
448 °ìÇդˤʤë¤È¡¢¿·¤¿¤Ë¥×¥í¥»¥¹¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤ë¡£
449 ¿Æ¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢¤½¤Î¿Æ¥×¥í¥»¥¹¤Î¡Ö¥¾¥ó¥Ó¡×¤Î
450 »Ò¥×¥í¥»¥¹¤Ï (¤â¤·¤¢¤ì¤Ð)
451 .BR init (8)
452 ¤ÎÍܻҤȤʤ롣
453 .BR init (8)
454 ¤Ï wait ¤ò¼«Æ°Åª¤Ë¼Â¹Ô¤·¡¢¥¾¥ó¥Ó¤òºï½ü¤¹¤ë¡£
455
456 POSIX.1-2001 ¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ëµ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
457 .B SIGCHLD
458 ¤ÎÆ°ºî¤¬
459 .B SIG_IGN
460 ¤ËÀßÄꤵ¤ì¤¿¤«¡¢
461 .B SIGCHLD
462 ¤ËÂФ·¤Æ
463 .B SA_NOCLDWAIT
464 ¥Õ¥é¥°¤¬ÀßÄꤵ¤ì¤¿¾ì¹ç
465 .RB ( sigaction (2)
466 »²¾È)¡¢½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Ï¥¾¥ó¥Ó¤Ë¤Ï¤Ê¤é¤º¡¢
467 .BR wait ()
468 ¤ä
469 .BR waitpid ()
470 ¤Î¸Æ¤Ó½Ð¤·¤ÏÁ´¤Æ¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÄä»ß¤·¡¢
471 »Ò¥×¥í¥»¥¹¤¬Á´Éô½ªÎ»¤·¤¿¸å
472 .I errno
473 ¤Ë
474 .B ECHILD
475 ¤òÀßÄꤷ¤Æ¼ºÇÔ¤¹¤ë¡£
476 (¤â¤È¤â¤È¤Î POSIX É¸½à¤Ï
477 .B SIGCHLD
478 ¤Ë
479 .B SIG_IGN
480 ¤òÀßÄꤷ¤¿¾ì¹ç¤Î¿¶¤ëÉñ¤¤¤ò̤µ¬Äê¤Î¤Þ¤Þ¤Ë¤·¤Æ¤¤¤ë¡£
481 .B SIGCHLD
482 ¤Î¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤¬¡Ö̵»ë¡×¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢
483 .B SIGCHLD
484 ¤ÎÆ°ºî¤È¤·¤Æ
485 .B SIG_IGN
486 ¤òÌÀ¼¨Åª¤ËÀßÄꤷ¤¿¾ì¹ç¤Ë¤Ï¥¾¥ó¥Ó¥×¥í¥»¥¹¤Î»Ò¥×¥í¥»¥¹¤Î°·¤¤¤¬
487 °Û¤Ê¤ëÅÀ¤ËÃí°Õ¤¹¤ë¤³¤È¡£)
488 Linux 2.6 ¤Ï¤³¤Î»ÅÍͤ˽àµò¤·¤Æ¤¤¤ë¡£
489 ¤·¤«¤·¡¢Linux 2.4 (¤È¤½¤ì°ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó) ¤Ï¤½¤¦¤Ç¤Ï¤Ê¤¤:
490 .B SIGCHLD
491 ¤¬Ìµ»ë¤µ¤ì¤ë¾õÂÖ¤Ç
492 .BR wait ()
493 ¤Þ¤¿¤Ï
494 .BR waitpid ()
495 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¾ì¹ç¡¢
496 .B SIGCHLD
497 ¤¬Ìµ»ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦¡£
498 ¤Ä¤Þ¤ê¡¢¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤Æ¼¡¤Î»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤Þ¤Ç¥Ö¥í¥Ã¥¯¤µ¤ì¡¢
499 ½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î PID ¤È¾õÂÖ¤¬ÊÖ¤µ¤ì¤ë¡£
500 .SS Linux ¤Ç¤ÎÃí°Õ
501 Linux ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤ë¥¹¥ì¥Ã¥É¤Ï
502 ¥×¥í¥»¥¹¤ÈÌÀ³Î¤Ë¶èÊ̤Ǥ­¤ë¹½À®Í×ÁǤǤϤʤ¤¡£¥¹¥ì¥Ã¥É¤Ï Linux ¸ÇÍ­¤Î
503 .BR clone (2)
504 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤ÆÀ¸À®¤µ¤ì¤ë¥×¥í¥»¥¹¤Ë²á¤®¤Ê¤¤¡£
505 °Ü¿¢À­¤Î¤¢¤ë
506 .BR pthread_create (3)
507 ¥³¡¼¥ë¤Î¤è¤¦¤Ê¾¤Î¥ë¡¼¥Á¥ó¤Ï
508 .BR clone (2)
509 ¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë;
510 ¤³¤ì¤é¤Ç¤Ï
511 .BR waitid ()
512 ¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£
513 Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¡¢¥¹¥ì¥Ã¥É¤Ïñ¤ËÆüì¤Ê¥×¥í¥»¥¹¤Ç¤¢¤Ã¤¿¤Î¤Ç¡¢
514 Î㤨Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Ç¤¢¤Ã¤Æ¤â¡¢
515 ¤¢¤ë¥¹¥ì¥Ã¥É¤¬Ê̤Υ¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤Ï½ÐÍè¤Ê¤«¤Ã¤¿¡£
516 ¤·¤«¤·¡¢POSIX ¤Ç¤Ï¤³¤Î¤è¤¦¤Êµ¡Ç½¤òµ¬Äꤷ¤Æ¤ª¤ê¡¢
517 Linux 2.4 °Ê¹ß¤Ç¤Ï¡¢¤¢¤ë¥¹¥ì¥Ã¥É¤¬Æ±¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î
518 »Ò¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤Î¤òÂԤĤ³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
519 ¤½¤·¤Æ¾­Íè¤Ï¤³¤ì¤¬¥Ç¥Õ¥©¥ë¥È¤ÎÆ°ºî¤Ë¤Ê¤ë¤Ç¤¢¤í¤¦¡£
520 .LP
521 .BR clone (2)
522 ¤òÍѤ¤¤Æºî¤é¤ì¤¿»Ò¥×¥í¥»¥¹¤Ë¤Ï¡¢°Ê²¼¤Î Linux ¸ÇÍ­¤Î
523 .I options
524 ¤¬»ÈÍѤǤ­¤ë¡£
525 .TP
526 .B __WCLONE
527 .\" since 0.99pl10
528 "clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂԤġ£
529 »ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏÈó "clone" ¤Ê»Ò¥×¥í¥»¥¹¤À¤±¤òÂÔ¤Ä
530 ("clone" ¤Ê»Ò¥×¥í¥»¥¹¤Ï¡¢½ªÎ»»þ¤Ë¿Æ¥×¥í¥»¥¹¤ØÁ´¤¯¥·¥°¥Ê¥ë¤òÁ÷¤é¤Ê¤¤¤«¡¢
531 .B SIGCHLD
532 °Ê³°¤Î¥·¥°¥Ê¥ë¤òÁ÷¤ë)¡£
533 ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï
534 .B __WALL
535 ¤â»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï̵»ë¤µ¤ì¤ë¡£
536 .TP
537 .BR __WALL " (Linux 2.4 °Ê¹ß)"
538 .\" since patch-2.3.48
539 "clone" ¤Ç¤¢¤ë¤«¤Ê¤¤¤«¤Ë´Ø¤ï¤é¤º¡¢
540 Á´¤Æ¤Î»Ò¥×¥í¥»¥¹¤òÂԤġ£
541 .TP
542 .BR __WNOTHREAD " (Linux 2.4 °Ê¹ß)"
543 .\" since patch-2.4.0-test8
544 Ʊ¤¸¥¹¥ì¥Ã¥É¥°¥ë¡¼¥×¤Î¾¤Î¥¹¥ì¥Ã¥É¤Î»Ò¥×¥í¥»¥¹¤ÏÂÔ¤¿¤Ê¤¤¡£
545 Linux 2.4 ¤è¤êÁ°¤Ç¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç¤¢¤Ã¤¿¡£
546 .SH Îã
547 .\" fork.2 ¤â¤³¤Î¥µ¥ó¥×¥ë¥×¥í¥°¥é¥à¤ò»²¾È¤·¤Æ¤¤¤ë¡£
548 °Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢
549 .BR fork (2)
550 ¤È
551 .BR waitpid ()
552 ¤Î»ÈÍÑÊýË¡¤ÎÎã¤ò¼¨¤·¤Æ¤¤¤ë¡£
553 ¤³¤Î¥×¥í¥°¥é¥à¤Ç¤Ï»Ò¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¡£
554 ¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¤È¤­¤Ï¡¢
555 »Ò¥×¥í¥»¥¹¤Ï
556 .BR pause (2)
557 ¤ò»È¤Ã¤Æ¤½¤Î¼Â¹Ô¤ò°ì»þÄä»ß¤·¡¢¥æ¡¼¥¶¤¬¤½¤Î»Ò¥×¥í¥»¥¹¤Ë
558 ¥·¥°¥Ê¥ë¤òÁ÷¿®¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¡£
559 ¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¤Ï¡¢
560 »Ò¥×¥í¥»¥¹¤Ïľ¤Á¤Ë½ªÎ»¤·¡¢
561 ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç»ØÄꤵ¤ì¤¿À°¿ô¤ò½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¡£
562 ¿Æ¥×¥í¥»¥¹¤Ï¡¢
563 .BR waitpid ()
564 ¤ò»È¤Ã¤Æ»Ò¥×¥í¥»¥¹¤ò´Æ»ë¤·¡¢
565 wait ¤Î¥¹¥Æ¡¼¥¿¥¹Ãͤò¾åµ­¤Î W*() ¥Þ¥¯¥í¤ò»È¤Ã¤Æ²òÀϤ¹¤ë¤È¤¤¤¦
566 ¥ë¡¼¥×¤ò¼Â¹Ô¤¹¤ë¡£
567
568 ²¼µ­¤Î¤Î¥·¥§¥ë¡¦¥»¥Ã¥·¥ç¥ó¤Ï¥×¥í¥°¥é¥à¤Î¼Â¹ÔÎã¤Ç¤¢¤ë:
569 .in +4n
570 .nf
571
572 .RB "$" " ./a.out &"
573 Child PID is 32360
574 [1] 32359
575 .RB "$" " kill \-STOP 32360"
576 stopped by signal 19
577 .RB "$" " kill \-CONT 32360"
578 continued
579 .RB "$" " kill \-TERM 32360"
580 killed by signal 15
581 [1]+  Done                    ./a.out
582 $
583 .fi
584 .in
585 .SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹
586 \&
587 .nf
588 #include <sys/wait.h>
589 #include <stdlib.h>
590 #include <unistd.h>
591 #include <stdio.h>
592
593 int
594 main(int argc, char *argv[])
595 {
596     pid_t cpid, w;
597     int status;
598
599     cpid = fork();
600     if (cpid == \-1) {
601         perror("fork");
602         exit(EXIT_FAILURE);
603     }
604
605     if (cpid == 0) {            /* Code executed by child */
606         printf("Child PID is %ld\\n", (long) getpid());
607         if (argc == 1)
608             pause();                    /* Wait for signals */
609         _exit(atoi(argv[1]));
610
611     } else {                    /* Code executed by parent */
612         do {
613             w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);
614             if (w == \-1) {
615                 perror("waitpid");
616                 exit(EXIT_FAILURE);
617             }
618
619             if (WIFEXITED(status)) {
620                 printf("exited, status=%d\\n", WEXITSTATUS(status));
621             } else if (WIFSIGNALED(status)) {
622                 printf("killed by signal %d\\n", WTERMSIG(status));
623             } else if (WIFSTOPPED(status)) {
624                 printf("stopped by signal %d\\n", WSTOPSIG(status));
625             } else if (WIFCONTINUED(status)) {
626                 printf("continued\\n");
627             }
628         } while (!WIFEXITED(status) && !WIFSIGNALED(status));
629         exit(EXIT_SUCCESS);
630     }
631 }
632 .fi
633 .SH ´ØÏ¢¹àÌÜ
634 .BR _exit (2),
635 .BR clone (2),
636 .BR fork (2),
637 .BR kill (2),
638 .BR ptrace (2),
639 .BR sigaction (2),
640 .BR signal (2),
641 .BR wait4 (2),
642 .BR pthread_create (3),
643 .BR credentials (7),
644 .BR signal (7)