Table of Contents
The
function suspends execution of its calling process until information
is available for a terminated child process, or a signal is received. On
return from a successful call, the area contains termination information
about the process that exited as defined below. The call provides a more
general interface for programs that need to wait for certain child processes,
that need resource utilization statistics accumulated by child processes,
or that require options. The other wait functions are implemented using
The parameter specifies the set of child processes for which to wait.
If is -1, the call waits for any child process. If is 0, the call waits
for any child process in the process group of the caller. If is greater
than zero, the call waits for the process with process id If is less
than -1, the call waits for any process whose process group id equals the
absolute value of The parameter is defined below. The parameter contains
the bitwise OR of any of the following options. The option is used to indicate
that the call should not block if there are no processes that wish to report
status. If the option is set, children of the current process that are
stopped due to a or signal also have their status reported. If is non-zero,
a summary of the resources used by the terminated process and all its children
is returned (this information is currently not available for stopped processes).
When the option is specified and no processes wish to report status,
returns a process id of 0. The call is identical to with an value
of zero. The older call is the same as with a value of -1. The following
macros may be used to test the manner of exit of the process. One of the
first three macros will evaluate to a non-zero (true) value: True if the
process terminated normally by a call to or True if the process terminated
due to receipt of a signal. True if the process has not terminated, but
has stopped and can be restarted. This macro can be true only if the wait
call specified the option or if the child process is being traced (see
Depending on the values of those macros, the following macros produce
the remaining status information about the child process: If is true,
evaluates to the low-order 8 bits of the argument passed to or by the
child. If is true, evaluates to the number of the signal that caused the
termination of the process. If is true, evaluates as true if the termination
of the process was accompanied by the creation of a core file containing
an image of the process when the signal was received. If is true, evaluates
to the number of the signal that caused the process to stop.
See
for a list of termination signals. A status of 0 indicates normal termination.
If a parent process terminates without waiting for all of its child processes
to terminate, the remaining child processes are assigned the parent process
1 ID (the init process ID). If a signal is caught while any of the calls
is pending, the call may be interrupted or restarted when the signal-catching
routine returns, depending on the options in effect for the signal; see
System call restart.
If returns due to a stopped or terminated
child process, the process ID of the child is returned to the calling process.
Otherwise, a value of -1 is returned and is set to indicate the error.
If or returns due to a stopped or terminated child process, the process
ID of the child is returned to the calling process. If there are no children
not previously awaited, -1 is returned with set to Otherwise, if is specified
and there are no stopped or exited children, 0 is returned. If an error
is detected or a caught signal aborts the call, a value of -1 is returned
and is set to indicate the error.
will fail and return immediately
if: The calling process has no existing unwaited-for child processes.
The or arguments point to an illegal address. (May not be detected before
exit of a child process.) The call was interrupted by a caught signal,
or the signal did not have the flag set.
The and functions
are defined by POSIX; and are not specified by POSIX. The macro and the
ability to restart a pending call are extensions to the POSIX interface.
A function call appeared in
Table of Contents