DUP(2) System Calls DUP(2)
dup - duplicate an open file descriptor
#include <unistd.h>
int dup(int fildes);
The dup() function returns a new file descriptor having the following
in common with the original open file descriptor fildes:
o same open file (or pipe)
o same file pointer (that is, both file descriptors share
one file pointer)
o 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) function call is equivalent to:
fcntl(fildes, F_DUPFD, 0)
Upon successful completion, a non-negative integer representing the
file descriptor is returned. Otherwise, -1 is returned and errno is
set to indicate the error.
The dup() function will fail if:
EBADF
The fildes argument is not a valid open file descriptor.
EINTR
A signal was caught during the execution of the dup()
function.
EMFILE
The process has too many open files (see getrlimit(2)).
ENOLINK
The fildes argument is on a remote machine and the link to
that machine is no longer active.
See attributes(7) for descriptions of the following attributes:
+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Standard |
+--------------------+-------------------+
|MT-Level | Async-Signal-Safe |
+--------------------+-------------------+
close(2), creat(2), exec(2), fcntl(2), getrlimit(2), open(2),
pipe(2), dup2(3C), lockf(3C), attributes(7), standards(7)
December 28, 1996 DUP(2)
NAME
dup - duplicate an open file descriptor
SYNOPSIS
#include <unistd.h>
int dup(int fildes);
DESCRIPTION
The dup() function returns a new file descriptor having the following
in common with the original open file descriptor fildes:
o same open file (or pipe)
o same file pointer (that is, both file descriptors share
one file pointer)
o 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) function call is equivalent to:
fcntl(fildes, F_DUPFD, 0)
RETURN VALUES
Upon successful completion, a non-negative integer representing the
file descriptor is returned. Otherwise, -1 is returned and errno is
set to indicate the error.
ERRORS
The dup() function will fail if:
EBADF
The fildes argument is not a valid open file descriptor.
EINTR
A signal was caught during the execution of the dup()
function.
EMFILE
The process has too many open files (see getrlimit(2)).
ENOLINK
The fildes argument is on a remote machine and the link to
that machine is no longer active.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Standard |
+--------------------+-------------------+
|MT-Level | Async-Signal-Safe |
+--------------------+-------------------+
SEE ALSO
close(2), creat(2), exec(2), fcntl(2), getrlimit(2), open(2),
pipe(2), dup2(3C), lockf(3C), attributes(7), standards(7)
December 28, 1996 DUP(2)