|
1 .TH wait 3 |
|
2 .SH NAME |
|
3 wait \- check child process status |
|
4 .SH SYNTAX |
|
5 .B #include <wait.h> |
|
6 |
|
7 int \fBwait_nohang\fP(&\fIwstat\fR); |
|
8 .br |
|
9 int \fBwait_stop\fP(&\fIwstat\fR); |
|
10 .br |
|
11 int \fBwait_stopnohang\fP(&\fIwstat\fR); |
|
12 .br |
|
13 int \fBwait_pid\fP(&\fIwstat\fR,\fIpid\fR); |
|
14 |
|
15 int \fBwait_exitcode\fP(\fIwstat\fR); |
|
16 .br |
|
17 int \fBwait_crashed\fP(\fIwstat\fR); |
|
18 .br |
|
19 int \fBwait_stopped\fP(\fIwstat\fR); |
|
20 .br |
|
21 int \fBwait_stopsig\fP(\fIwstat\fR); |
|
22 |
|
23 int \fIpid\fR; |
|
24 .br |
|
25 int \fIwstat\fR; |
|
26 .SH DESCRIPTION |
|
27 .B wait_nohang |
|
28 looks for zombies (child processes that have exited). |
|
29 If it sees a zombie, |
|
30 it eliminates the zombie, |
|
31 puts the zombie's exit status into |
|
32 .IR wstat , |
|
33 and returns the zombie's process ID. |
|
34 If there are several zombies, |
|
35 .B wait_nohang |
|
36 picks one. |
|
37 If there are children but no zombies, |
|
38 .B wait_nohang |
|
39 returns 0. |
|
40 If there are no children, |
|
41 .B wait_nohang |
|
42 returns -1, |
|
43 setting |
|
44 .B errno |
|
45 appropriately. |
|
46 |
|
47 .B wait_stopnohang |
|
48 is similar to |
|
49 .BR wait_nohang , |
|
50 but it also looks for children that have stopped. |
|
51 |
|
52 .B wait_stop |
|
53 is similar to |
|
54 .BR wait_stopnohang , |
|
55 but if there are children it will pause waiting for one of them |
|
56 to stop or exit. |
|
57 |
|
58 .B wait_pid |
|
59 waits for child process |
|
60 .I pid |
|
61 to exit. |
|
62 It eliminates any zombie that shows up in the meantime, |
|
63 discarding the exit status. |
|
64 |
|
65 .B wait_stop |
|
66 and |
|
67 .B wait_pid |
|
68 retry upon |
|
69 .BR error_intr . |
|
70 .SH "STATUS PARSING" |
|
71 If the child stopped, |
|
72 .B wait_stopped |
|
73 is nonzero; |
|
74 .B wait_stopsig |
|
75 is the signal that caused the child to stop. |
|
76 |
|
77 If the child exited by crashing, |
|
78 .B wait_stopped |
|
79 is zero; |
|
80 .B wait_crashed |
|
81 is nonzero. |
|
82 |
|
83 If the child exited normally, |
|
84 .B wait_stopped |
|
85 is zero; |
|
86 .B wait_crashed |
|
87 is zero; |
|
88 and |
|
89 .B wait_exitcode |
|
90 is the child's exit code. |
|
91 .SH "SEE ALSO" |
|
92 wait(2), |
|
93 error(3) |