Unix/Linux Go Back    


BSD 2.11 - man page for vfork (bsd section 2)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


VFORK(2)										 VFORK(2)

NAME
       vfork - spawn new process in a virtual memory efficient way

SYNOPSIS
       pid = vfork()
       int pid;

DESCRIPTION
       Vfork  can  be used to create new processes without fully copying the address space of the
       old process, which is horrendously inefficient in a paged environment.  It is useful  when
       the  purpose  of  fork(2)  would  have  been to create a new system context for an execve.
       Vfork differs from fork in that the child borrows the parent's memory and thread  of  con-
       trol  until  a  call  to execve(2) or an exit (either by a call to exit(2) or abnormally.)
       The parent process is suspended while the child is using its resources.

       Vfork returns 0 in the child's context and (later) the pid of the child	in  the  parent's
       context.

       Vfork  can  normally  be  used just like fork.  It does not work, however, to return while
       running in the childs context from the procedure that  called  vfork  since  the  eventual
       return  from  vfork  would  then  return to a no longer existent stack frame.  Be careful,
       also, to call _exit rather than exit if you can't execve, since exit will flush and  close
       standard  I/O  channels, and thereby mess up the parent processes standard I/O data struc-
       tures.  (Even with fork it is wrong to call exit since buffered data would then be flushed
       twice.)

SEE ALSO
       fork(2), execve(2), sigvec(2), wait(2),

DIAGNOSTICS
       Same as for fork.

BUGS
       This system call will be eliminated when proper system sharing mechanisms are implemented.
       Users should not depend on the memory sharing semantics of vfork as it will, in that case,
       be made synonymous to fork.

       To  avoid  a  possible  deadlock situation, processes that are children in the middle of a
       vfork are never sent SIGTTOU or SIGTTIN signals; rather, output or ioctls are allowed  and
       input attempts result in an end-of-file indication.

4th Berkeley Distribution		  June 30, 1985 				 VFORK(2)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 02:33 AM.