dup(2) SYSTEM CALLS 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:
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 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.
SEE ALSO
close(2), creat(2), exec(2), fcntl(2), getrlimit(2),
open(2), pipe(2), dup2(3C), lockf(3C).
DIAGNOSTICS
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.
1