xref: /original-bsd/share/man/man3f/fork.3 (revision c3e32dec)
Copyright (c) 1983, 1993
The Regents of the University of California. All rights reserved.

%sccs.include.proprietary.roff%

@(#)fork.3 8.1 (Berkeley) 06/05/93

FORK 3F ""
C 5
NAME
fork - create a copy of this process
SYNOPSIS
integer function fork()
DESCRIPTION
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.

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).

If the returned value is negative, it indicates an error and will be the negation of the system error code. See perror(3F).

A corresponding 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 fork/exec can be performed using system (3F). A pipe can be opened to another process using the f77 open statement with "file=\(fmprocess\(fm, status=\(fmpipe\(fm, access=\(fmread\(fm"

or

"file=\(fmprocess\(fm, status=\(fmpipe\(fm, access=\(fmwrite\(fm" \}

FILES
"SEE ALSO"
fork(2), wait(3F), kill(3F), system(3F), perror(3F)