/sys/doc/ Documentation archive

WAIT(II)                      2/9/75                     WAIT(II)

     wait - wait for process to terminate

     (wait = 7.)
     sys  wait
     (process ID in r0)
     (status in r1)

     int *status;

     Wait  causes its caller to delay until one of its child pro-
     cesses terminates.  If any child has  died  since  the  last
     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  chil-
     dren  several  wait  calls  are  needed  to learn of all the

     If no error is indicated on return, the r1 high byte  (resp.
     the  high byte stored into status ) contains the low byte of
     the child process r0 (resp. the argument of exit )  when  it
     terminated.   The  r1 (resp.  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  termi-
     nation  status  is set, a core image of the process was pro-
     duced by the system.

     If the parent process  terminates  without  waiting  on  its
     children, the initialization process (process ID = 1) inher-
     its the children.

     exit(II), fork(II), signal(II)

     The error bit (c-bit) is set if there are  no  children  not
     previously waited for.  From C, a returned value of -1 indi-
     cates an error.

                              - 1 -