WAIT(2-BSD) RISC/os Reference Manual WAIT(2-BSD)
NAME
wait, wait3 - wait for process to terminate
SYNOPSIS
#include <sys/wait.h>
pid = wait(status)
int pid;
union wait *status;
pid = wait(0)
int pid;
#include <sys/time.h>
#include <sys/resource.h>
pid = wait3(status, options, rusage)
int pid;
union wait *status;
int options;
struct rusage *rusage;
pid = mipswait3(status, options, rusage, rusagesize)
int pid;
union wait *status;
int options;
struct rusage *rusage;
int rusagesize;
DESCRIPTION
wait causes its caller to delay until a signal is received
or one of its child processes terminates. If any child has
died since the last wait, return is immediate, returning the
process id and exit status of one of the terminated chil-
dren. If there are no children, return is immediate with
the value -1 returned.
On return from a successful wait call, status is nonzero,
and the high byte of status contains the low byte of the
argument to exit supplied by the child process; the low byte
of status contains the termination status of the process. A
more precise definition of the status word is given in
<sys/wait.h>.
wait3 provides an alternate interface for programs that must
not block when collecting the status of child processes.
mips_wait3 performs the same function as wait3 but takes a
fourth argument which is the size of the rusage structure.
This interface will be used in the future to return MIPS
hardware specific resource use information as the rusage
structure is extended.
Printed 11/19/92 Page 1
WAIT(2-BSD) RISC/os Reference Manual WAIT(2-BSD)
The status parameter is defined as above. The options
parameter is used to indicate the call should not block if
there are no processes that wish to report status (WNOHANG),
and/or that children of the current process that are stopped
due to a SIGTTIN, SIGTTOU, SIGTSTP, or SIGSTOP signal should
also have their status reported (WUNTRACED). If rusage 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 WNOHANG option is specified and no processes wish
to report status, wait3 returns a pid of 0. The WNOHANG and
WUNTRACED options may be combined by or'ing the two values.
NOTES
See sigvec(2) for a list of termination statuses (signals);
0 status indicates normal termination. A special status
(0177) is returned for a stopped process that has not ter-
minated and can be restarted; see ptrace(2). If the 0200
bit of the termination status is set, a core image of the
process was produced by the system.
If the parent process terminates without waiting on its
children, the initialization process (process ID = 1) inher-
its the children.
wait and wait3 are automatically restarted when a process
receives a signal while awaiting termination of a child pro-
cess.
RETURN VALUE
If wait returns due to a stopped or terminated child pro-
cess, the process ID of the child is returned to the calling
process. Otherwise, a value of -1 is returned and errno is
set to indicate the error.
wait3 returns -1 if there are no children not previously
waited for; 0 is returned if WNOHANG is specified and there
are no stopped or exited children.
ERRORS
wait will fail and return immediately if one or more of the
following are true:
[ECHILD] The calling process has no existing
unwaited-for child processes.
[EFAULT] The status or rusage arguments point to an
illegal address.
SEE ALSO
exit(2)
Page 2 Printed 11/19/92