FORK(II)                      8/5/73                     FORK(II)

     fork  -  spawn new process

     (fork = 2.)
     sys fork
     (new process return)
     (old process return)

     fork( )

     Fork  is  the  only  way new processes are created.  The new
     process's core image is a copy of  that  of  the  caller  of
     fork.   The  only distinction is the return location and the
     fact that r0 in the old (parent) process contains  the  pro-
     cess ID of the new (child) process.  This process ID is used
     by wait.

     The two returning processes share all open files that exist-
     ed  before  the  call.   In particular, this is the way that
     standard input and output files  are  passed  and  also  how
     pipes are set up.

     From  C, the child process receives a 0 return, and the par-
     ent receives a non-zero number which is the  process  ID  of
     the  child;  a  return of -1 indicates inability to create a
     new process.

     wait(II), exec(II)

     The error bit (c-bit) is set in the old  process  if  a  new
     process  could  not  be  created  because of lack of process
     space.  From C, a return of -1 (not just negative) indicates
     an error.

                              - 1 -