Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       openat - Ouvrir un fichier relativement a un descripteur de repertoire

SYNOPSIS

       #include <fcntl.h>

       int openat(int dirfd, const char *pathname, int flags);
       int openat(int dirfd, const char *pathname, int flags, mode_t mode);

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       openat():
           Depuis la glibc 2.10 :
               _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
           Avant la glibc 2.10 :
               _ATFILE_SOURCE

DESCRIPTION

       L'appel systeme openat() fonctionne de la meme facon que  open(2),  les
       differences etant decrites dans cette page.

       Si  le  chemin  donne  dans pathname est relatif, il est interprete par
       rapport au repertoire reference par le  descripteur  de  fichier  dirfd
       (plutot  que par rapport au repertoire courant du processus, comme pour
       open(2)).

       Si pathname est un chemin relatif, et si dirfd  a  la  valeur  speciale
       AT_FDCWD,  alors  pathname  est  interprete  par  rapport au repertoire
       courant du processus appelant, comme dans open(2).

       Si pathname est un chemin absolu, dirfd est ignore.

VALEUR RENVOY'EE

       S'il reussit, openat() renvoie un nouveau descripteur  de  fichier.  En
       cas d'erreur, il renvoie -1 et errno contient le code d'erreur.

ERREURS

       Les  erreurs  renvoyees  par open(2) peuvent aussi l'etre par openat().
       Les erreurs supplementaires suivantes peuvent egalement se produire :

       EBADF  dirfd n'est pas un descripteur de fichier valable.

       ENOTDIR
              pathname est relatif, et le descripteur  de  fichier  dirfd  est
              associe a un fichier, pas a un repertoire.

VERSIONS

       openat() est apparu dans Linux 2.6.16.

CONFORMIT'E

       POSIX.1-2008. Un appel systeme similaire existe sur Solaris.

NOTES

       openat()  et  certains  autres  appels systeme avec un suffixe << at >>
       sont fournis pour deux raisons.

       Tout d'abord, openat() permet a une application d'eviter les  problemes
       d'acces  concurrents  lors  de l'utilisation de open(2) pour ouvrir des
       fichiers dans des repertoires autres que  le  repertoire  courant.  Ces
       problemes  sont  dus  au fait que l'un des composants du chemin donne a
       open(2) peut etre modifie parallelement  a  l'appel  open(2).  De  tels
       problemes  peuvent etre evites en ouvrant un descripteur de fichier sur
       le repertoire cible, puis en fournissant ce descripteur comme  argument
       dirfd de openat().

       Enfin,  openat()  permet  d'implementer un << repertoire courant >> par
       thread,  grace  a   des   descripteurs   de   fichier   maintenus   par
       l'application.  Cette  fonctionnalite  peut  egalement  etre obtenue en
       jouant avec /proc/self/fd/dirfd, mais de facon moins efficace.

VOIR AUSSI

       faccessat(2),  fchmodat(2),  fchownat(2),   fstatat(2),   futimesat(2),
       linkat(2), mkdirat(2), mknodat(2), open(2), readlinkat(2), renameat(2),
       symlinkat(2),       unlinkat(2),       utimensat(2),       mkfifoat(3),
       path_resolution(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/> (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).    Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                          13 decembre 2009                      OPENAT(2)