Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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)