dup(2)                                                                  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,
     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
          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.


                                                                        Page 1