FORK(2)			  Linux Programmer's Manual		      FORK(2)



NAME
       fork - create a child process

SYNOPSIS
       #include 
       #include 

       pid_t fork(void);

DESCRIPTION
       fork creates a child process that differs from the parent process only
       in its PID and PPID, and in the fact that  resource  utilizations  are
       set to 0.  File locks and pending signals are not inherited.

       Under  Linux,  fork  is	implemented using copy-on-write pages, so the
       only penalty incurred by fork is	 the  time  and	 memory	 required  to
       duplicate the parent's page tables, and to create a unique task struc-
       ture for the child.

RETURN VALUE
       On success, the PID of the child process is returned in	the  parent's
       thread of execution, and a 0 is returned in the child's thread of exe-
       cution.	On failure, a -1 will be returned in the parent's context, no
       child process will be created, and errno will be set appropriately.

ERRORS
       EAGAIN fork  cannot  allocate  sufficient  memory to copy the parent's
	      page tables and allocate a task structure for the child.

       ENOMEM fork failed to allocate the necessary kernel structures because
	      memory is tight.

CONFORMING TO
       The fork call conforms to SVr4, SVID, POSIX, X/OPEN, BSD 4.3.

SEE ALSO
       clone(2), execve(2), vfork(2), wait(2)



Linux 1.2.9			  1995-06-10			      FORK(2)