V6/usr/man/man2/wait.2
.th WAIT II 2/9/75
.sh NAME
wait \*- wait for process to terminate
.sh SYNOPSIS
(wait = 7.)
.br
.ft B
sys wait
.ft R
.br
(process ID in r0)
.br
(status in r1)
.s3
.ft B
wait(status)
.br
int *status;
.ft R
.sh DESCRIPTION
.it Wait
causes its caller to delay until one of its child
processes terminates.
If any child has died since the last
.it wait,
return is immediate;
if there are no children, return is immediate with
the error bit set
(resp. with a value of \*-1 returned).
The normal return yields the process ID of the terminated child
(in r0).
In the case of several children several
.it wait
calls are needed
to learn of all the deaths.
.s3
If no error is indicated on return,
the r1 high byte (resp. the high byte stored into
.it status
) contains the low byte of the
child process r0 (resp. the argument of
.it exit
) when it terminated.
The r1 (resp.
.it status
) low byte contains the termination status
of the process.
See signal (II) for
a list of termination statuses (signals);
0 status indicates normal termination.
A special status (0177) is returned for a stopped process
which has not terminated and can be restarted.
See ptrace (II).
If the 0200 bit of the termination status
is set,
a core image of the process was produced
by the system.
.s3
If the parent process terminates without
waiting on its children,
the initialization process
(process ID = 1)
inherits the children.
.sh "SEE ALSO"
exit (II), fork (II), signal (II)
.sh DIAGNOSTICS
The error bit
(c-bit) is set if there are no children not previously waited for.
From C, a returned value of \*-1 indicates an error.