wait3(2)wait3(2)NAMEwait3(), wait4() - wait for child process to change state
SYNOPSISDESCRIPTION
The and functions allow the calling process to obtain various status
information for a caller's child process based on the options speci‐
fied. If status information is available for two or more child pro‐
cesses, the order of which process to report status on is not defined.
The function is similar to except that waits for a specific child as
indicated by the pid parameter.
Note that the following call
is equivalent to the call:
Note that the following call
is equivalent to the call:
In both of the previous prototypes, on successful completion, if the
resource_usage argument to or is not a null pointer, the structure that
the resource_usage argument points to is filled in for the child
process identified by the return value.
The pid argument specifies a child process for which status is
requested. The following rules define which status information is
returned:
· If pid is equal to (pid_t) −1, status is requested for any
child process.
· If pid is greater than 0, it specifies the process ID of a
single child process for which status is requested.
· If pid is 0, status is requested for any child process whose
process group ID is equal to that of the calling process.
· If pid is less than (pid_t) −1, status is requested for any
child process whose process group ID is equal to the absolute
value of pid.
The stat_loc argument is the address where status about the specified
child process is placed.
The options argument is constructed from the bitwise-inclusive OR of
zero or more of the following flags defined in the header file:
The status of any continued child process specified by
pid that has not been reported since it con‐
tinued is reported to the requesting process.
The and functions will not suspend execution of
the calling process if status is not immedi‐
ately available for one of the child processes
specified by pid.
This causes the wait not to be registered.
This means that the registered process that is
being waited on, can be waited on again with
identical results, provided that the status of
the child does not change in the meantime.
The status of any child processes specified by
pid that are stopped and whose status has not
yet been reported since they stopped, will
also be reported to the requesting process.
The resource_usage argument points to the resource utilization struc‐
ture.
APPLICATION USAGE
Threads Considerations
In a multi-threaded application, only the calling thread is suspended
by and
The and functions will not return until all threads in the process have
reached the desired state. For example, and will not return until all
threads have terminated. If the or options are specified, and will not
return until all threads have stopped or continued respectively.
RETURN VALUE
If or returns because the status of a child process is available, the
return value is the process ID of that child process. If or returns
due to the receipt of a signal, the return value receives a and is set
to
If or was called with the options argument where status is not avail‐
able for any process specified by the pid argument, will be returned.
Otherwise, (pid_t) will be returned and will be set to indicate the
error.
ERRORS
If or fails, is set to one of the following values:
The calling process has no existing unwaited-for child pro‐
cesses;
or the states specified by the options argument
are invalid for the set of processes specified by
the pid argument.
Problems were encountered in the retrieval of status information
for the
specified child process.
The or function has been interrupted by a signal.
The value in the location pointed to by the
stat_loc argument is undefined.
The options argument to or is invalid.
WARNINGS
The behavior of and is affected if the signal is set to See the WARN‐
INGS section of signal(5). Signal handlers that cause system calls to
be restarted can affect the condition described above (see bsdproc(3C)
and sigaction(2)).
AUTHOR
The and functions were developed by HP, AT&T, and the University of
California, Berkeley.
SEE ALSOexec(2), exit(2), fork(2), pause(2), wait(2), waitpid(2).
wait3(2)