*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> vfork (2)              
Title
Content
Arch
Section
 

VFORK(2)

Contents


NAME    [Toc]    [Back]

     vfork - spawn new process and block parent

SYNOPSIS    [Toc]    [Back]

     #include <unistd.h>

     pid_t
     vfork(void);

DESCRIPTION    [Toc]    [Back]

     vfork() was originally used to create new processes  without
fully copying
     the  address space of the old process, which is horrendously
inefficient
     in a paged environment.  It was useful when the  purpose  of
fork(2) would
     have  been  to create a new system context for an execve(2).
Since fork(2)
     is now efficient, even in  the  above  case,  the  need  for
vfork() has diminished.
   vfork()  differs from fork(2) in that the parent is
suspended until
 the child makes a call to execve(2) or an  exit  (either
by a call to
     _exit(2) or abnormally).

     vfork() returns 0 in the child's context and (later) the PID
of the child
     in the parent's context.

RETURN VALUES    [Toc]    [Back]

     Same as for fork(2).

SEE ALSO    [Toc]    [Back]

      
      
     execve(2), fork(2), sigaction(2), wait(2)

HISTORY    [Toc]    [Back]

     The vfork() function call appeared in 2.9BSD.

BUGS    [Toc]    [Back]

     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 ioctl(2) calls are allowed and  input  attempts result in
     an end-of-file indication.

OpenBSD      3.6                           June      30,     1997
[ Back ]
 Similar pages
Name OS Title
vfork Linux create a child process and block parent
__clone NetBSD spawn new process with options
clone NetBSD spawn new process with options
vfork HP-UX spawn new process; share virtual memory
vfork NetBSD spawn new process in a virtual memory efficient way
vfork FreeBSD spawn new process in a virtual memory efficient way
getppid Tru64 Get the process ID, process group ID, or parent process ID
getpgrp HP-UX get process, process group and parent process ID.
getppid HP-UX get process, process group and parent process ID.
getpgid HP-UX get process, process group and parent process ID.
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service