119 lines
2.5 KiB
Groff
119 lines
2.5 KiB
Groff
|
||
|
||
FORK(2) Minix Programmer's Manual FORK(2)
|
||
|
||
|
||
NAME
|
||
fork - create a new process
|
||
|
||
SYNOPSIS
|
||
#include <sys/types.h>
|
||
#include <unistd.h>
|
||
|
||
pid_t fork(void)
|
||
|
||
DESCRIPTION
|
||
Fork causes creation of a new process. The new process (child process)
|
||
is an exact copy of the calling process except for the following:
|
||
|
||
The child process has a unique process ID.
|
||
|
||
The child process has a different parent process ID (i.e., the
|
||
process ID of the parent process).
|
||
|
||
The child process has its own copy of the parent's descriptors.
|
||
These descriptors reference the same underlying objects, so that,
|
||
for instance, file pointers in file objects are shared between the
|
||
child and the parent, so that an lseek(2) on a descriptor in the
|
||
child process can affect a subsequent read or write by the parent.
|
||
This descriptor copying is also used by the shell to establish
|
||
standard input and output for newly created processes as well as to
|
||
set up pipes.
|
||
|
||
The child starts with no pending signals and an inactive alarm
|
||
timer.
|
||
|
||
RETURN VALUE
|
||
Upon successful completion, fork returns a value of 0 to the child
|
||
process and returns the process ID of the child process to the parent
|
||
process. Otherwise, a value of -1 is returned to the parent process, no
|
||
child process is created, and the global variable errno is set to
|
||
indicate the error.
|
||
|
||
ERRORS
|
||
Fork will fail and no child process will be created if one or more of the
|
||
following are true:
|
||
|
||
[EAGAIN] The system-imposed limit on the total number of processes
|
||
under execution would be exceeded. This limit is
|
||
configuration-dependent. (The kernel variable NR_PROCS in
|
||
<minix/config.h> (Minix), or <minix/const.h> (Minix-vmd).)
|
||
|
||
[ENOMEM] There is insufficient (virtual) memory for the new
|
||
process.
|
||
|
||
|
||
|
||
|
||
BSD May 22, 1986 1
|
||
|
||
|
||
|
||
FORK(2) Minix Programmer's Manual FORK(2)
|
||
|
||
|
||
SEE ALSO
|
||
execve(2), wait(2).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
BSD May 22, 1986 2
|
||
|