wait.3
changeset 0 068428edee47
equal deleted inserted replaced
-1:000000000000 0:068428edee47
       
     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)