dup

DUP(2)                      Manual del Programador                      DUP(2)



NOMBRE
       dup, dup2 - duplica un descriptor de fichero

SINOPSIS
       #include <unistd.h>

       int dup(int oldfd);
       int dup2(int oldfd, int newfd);

DESCRIPCIÃN
       dup y dup2 crean una copia del descriptor de fichero oldfd.

       Los descriptores antiguo y nuevo pueden usarse indiferentemente.
       Comparten candados (locks), punteros de posición de fichero y banderas
       (flags); por ejemplo, si la posición del fichero se modifica usando
       lseek en uno de los descriptores, la posición en el otro también
       cambia.

       Sin embargo los descriptores no comparten la bandera close-on-exec,
       (cierra-en-ejecución).

       dup usa el descriptor libre con menor enumeración posible como nuevo
       descriptor.

       dup2 hace newfd ser la copia de oldfd, cerrando primero newfd si es
       necesario.

VALOR REGRESADO
       dup y dup2 regresa el valor del nuevo descriptor, o -1 si ocurre algún
       error, en dicho caso errno se asigna apropiadamente.

ERRORES
       EBADF  oldfd no es un descriptor de fichero abierto, o newfd está
              fuera del rango permitido para descriptores de ficheros.

       EMFILE El proceso ya tiene el máximo número de descriptores de
              fichero abiertos y se ha intentado abrir uno nuevo.

ADVERTENCIA
       El error regresado por dup2 es diferente de aquel regresado por
       fcntl(...,F_DUPFD,...)  cuando newfd está fuera de rango. En algunos
       sistemas dup2 a veces regresa EINVAL como F_DUPFD.

CONFORMA CON
       SVID, AT&T, POSIX, X/OPEN, BSD 4.3

VÃASE
        fcntl (2), open (2), close (2).



Linux 1.1.46                     1 Julio 1996                           DUP(2)