dup(2)
NAME
dup − duplicate an open file descriptor
SYNOPSIS
#include <unistd.h>
int dup(int fildes);
DESCRIPTION
dup() returns a new file descriptor having the following in common with the original open file descriptor fildes:
Same open file (or pipe).
Same file pointer (that is, 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 functions (see fcntl(2)).
The file descriptor returned is the lowest one available.
The dup(fildes) is equivalent to
open(path,O_WRONLY | O_CREAT | O_TRUNC, mode)
RETURN VALUES
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.
ERRORS
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() function.
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)
SunOS 5.1 — Last change: 29 Jul 1991