fork
OS/161 Reference Manual
Name
fork - copy the current process
Library
Standard C Library (libc, -lc)
Synopsis
#include <unistd.h>
pid_t
fork(void);
Description
fork duplicates the currently running process. The two copies are
identical, except that one (the "new" one, or "child"), has a new,
unique process id, and in the other (the "parent") the process id is
unchanged.
The process id must be greater than 0.
The two processes do not share memory or open file tables; this state
is copied into the new process, and subsequent modification in one
process does not affect the other.
However, the file handle objects the file tables point to are shared,
so, for instance, calls to lseek in one process can affect the other.
Return Values
On success, fork returns twice, once in the parent process and once in
the child process. In the child process, 0 is returned. In the parent
process, the process id of the new child process is returned.
On error, no new process is created, fork only returns once, returning
-1, and errno is set according to the error
encountered.
Errors
The following error codes should be returned under the conditions
given. Other error codes may be returned for other errors not
mentioned here.
| |
EMPROC | The current user already has too
many processes. |
ENPROC | There are already too many
processes on the system. |
ENOMEM | Sufficient virtual memory for the new
process was not available. |