dup2(3C)
NAME
dup2 − duplicate an open file descriptor
SYNOPSIS
#include <unistd.h>
int dup2(int fildes, int fildes2);
DESCRIPTION
dup2() causes the file descriptor fildes2 to refer to the same file as fildes. fildes is a file descriptor referring to an open file, and fildes2 is a non-negative integer less than {OPEN_MAX} (the maximum number of open files). If fildes2 already referred to an open file, not fildes, it is closed first. If fildes2 refers to fildes, or if fildes is not a valid open file descriptor, fildes2 will not be closed first.
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
dup2() will fail if one or more of the following are true:
EBADF fildes is not a valid open file descriptor.
EBADF fildes2 is negative or greater than or equal to {OPEN_MAX}.
EINTR a signal was caught during the dup2() call.
EMFILE {OPEN_MAX} file descriptors are currently open.
SEE ALSO
close(2), creat(2), exec(2), fcntl(2), open(2), pipe(2), lockf(3C), limits(4)
SunOS 5.1 — Last change: 13 Jul 1990