Provided by: manpages-es_1.55-10_all bug

NOMBRE

       dup, dup2 - duplica un descriptor de fichero

SINOPSIS

       #include <unistd.h>

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

DESCRIPCI'ON

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

       Despues de una llamada a dup o dup2 con exito, los descriptores antiguo
       y nuevo pueden usarse  indiferentemente.  Comparten  candados  (locks),
       indicadores  de posicion de fichero y banderas (flags); por ejemplo, si
       la posicion del  fichero  se  modifica  usando  lseek  en  uno  de  los
       descriptores, la posicion en el otro tambien cambia.

       Sin  embargo  los  descriptores  no comparten la bandera close-on-exec,
       (cerrar-al-ejecutar).

       dup usa el descriptor libre con menor  numeracion  posible  como  nuevo
       descriptor.

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

VALOR DEVUELTO

       dup y dup2 devuelven el valor del nuevo  descriptor,  o  -1  si  ocurre
       algun error, en cuyo caso errno toma un valor apropiado.

ERRORES

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

       EMFILE El proceso ya tiene el maximo numero de descriptores de  fichero
              abiertos y se ha intentado abrir uno nuevo.

ADVERTENCIA

       El  error  devuelto  por  dup2 es diferente del devuelto por fcntl(...,
       F_DUPFD,...)  cuando newfd esta fuera de  rango.  En  algunos  sistemas
       dup2 a veces devuelve EINVAL como F_DUPFD.

FALLOS

       Si newfd estaba abierto, cualquier error que pudiera haber aparecido en
       el momento de llamar a close() se pierde. Un programador  cauteloso  no
       usara dup2 sin cerrar newfd primero.

CONFORME A

       SVID,  AT&T,  POSIX, X/OPEN, BSD 4.3. SVr4 documenta las condiciones de
       error adicionales EINTR y ENOLINK. POSIX.1 anade EINTR.

V'EASE TAMBI'EN

       fcntl(2), open(2), close(2)