Annotation of 43BSDReno/lib/libc/sys/fork.2, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)fork.2      6.4 (Berkeley) 5/22/86
                      6: .\"
                      7: .TH FORK 2 "May 22, 1986"
                      8: .UC
                      9: .SH NAME
                     10: fork \- create a new process
                     11: .SH SYNOPSIS
                     12: .ft B
                     13: pid = fork()
                     14: .br
                     15: int pid;
                     16: .ft R
                     17: .SH DESCRIPTION
                     18: .I Fork
                     19: causes creation of a new process.
                     20: The new process (child process) is an exact copy of the
                     21: calling process except for the following:
                     22: .in +5n
                     23: .sp
                     24: The child process has a unique process ID.
                     25: .sp
                     26: The child process has a different parent process ID (i.e.,
                     27: the process ID of the parent process).
                     28: .sp
                     29: The child process has its own copy of the parent's descriptors.
                     30: These descriptors reference the same underlying objects, so that,
                     31: for instance, file pointers in file objects are shared between
                     32: the child and the parent, so that an
                     33: .IR lseek (2)
                     34: on a descriptor in the child process can affect a subsequent
                     35: .I read
                     36: or
                     37: .I write
                     38: by the parent.
                     39: This descriptor copying is also used by the shell to
                     40: establish standard input and output for newly created processes
                     41: as well as to set up pipes.
                     42: .sp
                     43: The child processes resource utilizations are set to 0;
                     44: see
                     45: .IR setrlimit (2).
                     46: .SH "RETURN VALUE
                     47: Upon successful completion, \fIfork\fP returns a value
                     48: of 0 to the child process and returns the process ID of the child
                     49: process to the parent process.  Otherwise, a value of \-1 is returned
                     50: to the parent process, no child process is created, and the global
                     51: variable \fIerrno\fP is set to indicate the error.
                     52: .SH ERRORS
                     53: .I Fork
                     54: will fail and no child process will be created if one or more of the
                     55: following are true:
                     56: .TP 15
                     57: [EAGAIN]
                     58: The system-imposed limit on the total
                     59: number of processes under execution would be exceeded.
                     60: This limit is configuration-dependent.
                     61: .TP 15
                     62: [EAGAIN]
                     63: The system-imposed limit MAXUPRC (\fI<sys/param.h>) \fRon the total number of
                     64: processes under execution by a single user would be exceeded.
                     65: .TP 15
                     66: [ENOMEM]
                     67: There is insufficient swap space for the new process.
                     68: .SH "SEE ALSO"
                     69: execve(2), wait(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.