dup(2) dup(2)
NAME
dup - duplicate an open file descriptor
SYNOPSIS
#include <unistd.h>
int dup(int fildes);
DESCRIPTION
fildes is a file descriptor obtained from a creat(), open(), dup(),
fcntl(), or pipe() system call. dup() returns a new file descriptor
having the following in common with the original file descriptor.
- Same open file (or pipe).
- Same file pointer (i.e., both file descriptors share one file
pointer).
- Same access mode (read, write or read/write).
The new file descriptor is set to remain open across exec system calls
[see fcntl(2)].
The file descriptor returned is the smallest number available.
dup() will fail if one or more of the following apply:
EBADF fildes is not a valid open file descriptor.
EINTR A signal was caught during the dup() system call.
EMFILE The process has too many open files [see getrlimit(2)].
ENOLINK fildes is on a remote machine and the link to that machine is
no longer active.
RESULT
Upon successful completion a non-negative integer, namely the file
descriptor, is returned. Otherwise, a value of -1 is returned and
errno is set to indicate the error.
SEE ALSO
close(2), creat(2), exec(2), fcntl(2), getrlimit(2), open(2), pipe(2),
dup2(3C), lockf(3C).
Page 1 Reliant UNIX 5.44 Printed 11/98