dup - duplicate an open file descriptor
int dup(int fildes);
fildes is a file descriptor obtained from a creat, open, dup, fcntl,
pipe, or ioctl system call. dup returns a new file descriptor having the
following in common with the original:
Same open file (or pipe).
Same file pointer (i.e., both file descriptors share one file
Same access mode (read, write or read/write).
The new file descriptor is set to remain open across exec system calls
The file descriptor returned is the lowest one available.
dup will fail if one or more of the following are true:
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.
close(2), creat(2), exec(2), fcntl(2), getrlimit(2), open(2), pipe(2),
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.
PPPPaaaaggggeeee 1111 [ Back ]