4.4BSD/usr/src/share/man/man3f/fork.3

Compare this file to the similar file:
Show the results in this format:

.\" Copyright (c) 1983, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" This module is believed to contain source code proprietary to AT&T.
.\" Use and redistribution is subject to the Berkeley Software License
.\" Agreement and your Software Agreement with AT&T (Western Electric).
.\"
.\"	@(#)fork.3	8.1 (Berkeley) 6/5/93
.\"
.TH FORK 3F "June 5, 1993"
.UC 5
.SH NAME
fork \- create a copy of this process
.SH SYNOPSIS
.B integer function fork()
.SH DESCRIPTION
.I Fork
creates a copy of the calling process.
The only distinction between the 2 processes is that the value
returned to one of them (referred to as the `parent' process)
will be the process id of the copy.
The copy is usually referred to as the `child' process.
The value returned to the `child' process will be zero.
.PP
All logical units open for writing are flushed before the fork to avoid
duplication of the contents of I/O buffers in the external file(s).
.PP
If the returned value is negative, it indicates an error and will be
the negation of the system error code.
See perror(3F).
.PP
A corresponding
.I exec
routine has not been provided because there is no satisfactory way to
retain open logical units across the exec.
However, the usual function of
.I fork/exec
can be performed using
.IR system (3F).
.if 0 \{
A pipe can be opened to another process using the f77
.B open
statement with
.sp 1
.ti +5
.B "file=\(fm\fIprocess\fB\(fm, status=\(fmpipe\(fm, access=\(fmread\(fm"
.br
or
.br
.ti +5
.B "file=\(fm\fIprocess\fB\(fm, status=\(fmpipe\(fm, access=\(fmwrite\(fm"
\}
.SH FILES
.ie \nM /usr/ucb/lib/libU77.a
.el /usr/lib/libU77.a
.SH "SEE ALSO"
fork(2), wait(3F), kill(3F), system(3F), perror(3F)