xref: /csrg-svn/lib/libc/sys/dup.2 (revision 20068)
Copyright (c) 1980 Regents of the University of California.
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.

@(#)dup.2 4.1 (Berkeley) 05/09/85

DUP 2
C 4
NAME
dup, dup2 - duplicate an open file descriptor
SYNOPSIS
 dup(fildes)  int fildes; 

dup2(fildes, fildes2) int fildes, fildes2;

DESCRIPTION
Given a file descriptor returned from an open, pipe, or creat call, dup allocates another file descriptor synonymous with the original. The new file descriptor is returned.

In the second form of the call, fildes is a file descriptor referring to an open file, and fildes2 is a non-negative integer less than the maximum value allowed for file descriptors (approximately 19). Dup2 causes fildes2 to refer to the same file as fildes. If fildes2 already referred to an open file, it is closed first.

"SEE ALSO"
creat(2), open(2), close(2), pipe(2)
DIAGNOSTICS
The value -1 is returned if: the given file descriptor is invalid; there are already too many open files.
"ASSEMBLER (PDP-11)"
(dup = 41.)

(file descriptor in r0)

(new file descriptor in r1)

sys dup

(file descriptor in r0)

The dup2 entry is implemented by adding 0100 to fildes.

BUGS
Dup2 fails if fildes2 was vread from and some of the pages have not been referenced.