Provided by: manpages-fr-dev_3.07.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.

       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, mais prenez note des points suivants.

       *  Si  oldfd n’est pas un descripteur de fichier valable, alors l’appel
          échoue et newfd n’est pas fermé.

       *  Si oldfd est un descripteur de fichier valable et newfd  a  la  même
          valeur que oldfd, alors dup2() ne fait rien et renvoie newfd.

       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().

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 de fichier ouvert, 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(2) et dup().

       EINTR  L’appel dup2() a été interrompu par un signal ; voir  signal(7).

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

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001.

NOTES

       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
       rapportées   par   close(2)   sont  perdues.  Un  programmeur  soigneux
       n’utilisera pas dup2 sans fermer newfd d’abord.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.07  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

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> ».