Annotation of 43BSDReno/lib/libc/sys/fork.2, revision 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.