Provided by: manpages-fr-dev_2.45.1-1_all bug
 

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.
 
        Après  un  appel  réussi  à  dup()  ou  dup2(),  l’ancien et le nouveau
        descripteurs peuvent être  utilisés  de  manière  interchangeable.  Ils
        référencent  la  même  description  de fichier ouvert (voir open(2)) et
        ainsi partagent les pointeurs de position et les drapeaux. Par exemple,
        si  le  pointeur de position est modifié en utilisant lseek(2) sur l’un
        des descripteurs, la position est également changée pour l’autre.
 
        Les  deux  descripteurs   ne   partagent   toutefois   pas   l’attribut
        close‐on‐exec. L’attribut close‐on‐exec (FD_CLOEXEC ; voir fcntl(2)) de
        la copie est désactivé, ce qui signifie qu’il ne sera  pas  fermé  lors
        d’un exec().
 
        dup()  utilise  le plus petit numéro inutilisé pour le nouveau descrip‐
        teur.
 
        dup2() transforme newfd en une copie de oldfd, fermant auparavant newfd
        si besoin est.
        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.
 
        EBUSY  (Linux  seulement)  Cette  valeur peut être retournée par dup2()
               lors d’une concurrence critique avec open() et dup().
 
        EINTR  L’appel dup2() a été interrompu par un signal.
 
        EMFILE Le processus dispose déjà du nombre maximum de  descripteurs  de
               fichiers  autorisés  simultanément, et tente d’en ouvrir un nou‐
               veau.
 

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.
 
        Si  newfd  était  ouvert,  toutes  les erreurs susceptibles d’être rap‐
        portées par close() sont perdues. Un programmeur  soigneux  n’utilisera
        pas dup2 sans fermer newfd d’abord.
 

CONFORMIT

        SVr4, BSD 4.3, POSIX.1-2001.
        close(2), fcntl(2), open(2)
 

TRADUCTION

        Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
        Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
        Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
        disposition sur http://manpagesfr.free.fr/.
 
        Les mises à jour et corrections de la version présente dans Debian sont
        directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
        francophone de traduction de Debian.
 
        Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
        <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
        paquet manpages-fr.
 
        Vous pouvez toujours avoir accès à la version anglaise de  ce  document
        en utilisant la commande « man -L C <section> <page_de_man> ».