DUP(2)             Manuel du programmeur Linux             DUP(2)


NOM
       dup, dup2 - Dupliquer un descripteur de fichier.

SYNOPSIS
       #include <unistd.h>

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

DESCRIPTION
       dup  et  dup2  créent  une copie du descripteur de fichier
       oldfd.

       L'ancien et le nouveau descripteurs peuvent être  utilisés
       de manière interchangeable. Ils partagent les verrous, les
       pointeurs de position et les drapeaux. Par exemple  si  le
       pointeur  de  position  est modifié en utilisant lseek sur
       l'un des descripteurs, la position est  également  changée
       pour l'autre.

       Les  deux  descripteurs ne partagent toutefois pas le dra­
       peau Close-on-exec.

       dup utilise le plus petit numéro inutilisé pour le nouveau
       descripteur.

       dup2  transforme  newfd  en  une  copie  de oldfd, fermant
       auparavant newfd si besoin est.

VALEUR RENVOYÉE
       dup et dup2 renvoient le nouveau descripteur, ou -1  s'ils
       échouent, auquel cas errno contient le code d'erreur.

ERREURS
       EBADF  oldfd  n'est  pas  un  descripteur valide, ou newfd
              n'est pas  dans  les  valeurs  autorisées  pour  un
              descripteur.

       EMFILE Le  processus  dispose  déjà  du  nombre maximum de
              descripteurs de fichiers  autorisés  simultanément,
              et tente d'en ouvrir un nouveau.

ATTENTION
       Les  erreurs renvoyées par dup2 sont différentes de celles
       retournées par fcntl(...,F_DUPFD,...)  si newfd n'est  pas
       dans  les  valeurs  autorisées. Sur certains systèmes dup2
       retourne aussi parfois EINVAL comme F_DUPFD.

CONFORMITÉ
       SVr4, SVID POSIX, X/OPEN, BSD 4.3. SVr4 documente des con­
       ditions d'erreur supplémentaires EINTR et ENOLINK. POSIX.1
       ajoute également EINTR.





Linux 1.1.46              9 Octobre 1996                        1





DUP(2)             Manuel du programmeur Linux             DUP(2)


VOIR AUSSI
        fcntl (2), open (2), close (2).


TRADUCTION
       Christophe Blaess, 1997.



















































Linux 1.1.46              9 Octobre 1996                        2