Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       mkfifo, mkfifoat - Créer un fichier spécial FIFO (un tube nommé)

SYNOPSIS

       #include <sys/types.h>
       #include <sys/stat.h>

       int mkfifo(const char *pathname, mode_t mode);

       #include <fcntl.h>           /* Définition des constantes AT_* */
       #include <sys/stat.h>

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

   Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :

       mkfifoat() :
           Depuis la glibc 2.10 :
               _POSIX_C_SOURCE >= 200809L
           Avant la glibc 2.10 :
               _ATFILE_SOURCE

DESCRIPTION

       mkfifo()   makes  a  FIFO  special  file with name pathname. mode specifies the FIFO's permissions. It is
       modified by the process's umask in the usual way: the  permissions  of  the  created  file  are  (mode  &
       ~umask).

       Un  fichier  spécial  FIFO est semblable à un tube (pipe), sauf qu'il est créé différemment. Plutôt qu'un
       canal de communication anonyme, un fichier FIFO est inséré  dans  le  système  de  fichiers  en  appelant
       mkfifo().

       Une  fois  qu'un  fichier  FIFO  est créé, n'importe quel processus peut l'ouvrir en lecture ou écriture,
       comme tout fichier ordinaire. En fait, il faut ouvrir les deux extrémités simultanément avant de  pouvoir
       effectuer  une  opération  d'écriture  ou  de  lecture. L'ouverture d'un FIFO en lecture est généralement
       bloquante, jusqu'à ce qu'un autre processus ouvre le même FIFO en  écriture,  et  inversement.  Consultez
       fifo(7) pour la gestion non bloquante d'une FIFO.

   mkfifoat()
       La  fonction mkfifoat() opère exactement de la même façon que la fonction mkfifo(), à une différence près
       (décrite ci-dessous).

       Si le chemin fourni dans pathname est  un  chemin  relatif,  alors  il  est  interprété  relativement  au
       répertoire  indiqué  par  le  descripteur  de fichier dirfd (et non relativement au répertoire courant du
       processus appelant, comme c'est le cas lorsque que mkfifo() est appelée avec un chemin relatif).

       Si pathname est un chemin relatif et si  dirfd est  la  valeur  spéciale  AT_FDCWD,  alors  pathname  est
       interprété relativement au répertoire de travail courant du processus appelant (comme pour mkfifo()).

       Si pathname est absolu, alors dirfd est ignoré.

VALEUR RENVOYÉE

       La  valeur renvoyée par mkfifo() et par mkfifoat() lorsqu'elles réussissent est 0. Si elles échouent, ces
       fonctions renvoient -1, auquel cas errno contient le code d'erreur.

ERREURS

       EACCES L'un des répertoires dans pathname ne permet pas la recherche (exécution).

       EDQUOT Le quota utilisateur pour le système de fichiers a été  dépassé  (usage  de  blocs  de  disque  ou
              d'inœuds).

       EEXIST pathname existe déjà. Cela inclut le cas où pathname est un lien symbolique, pouvant pointer nulle
              part.

       ENAMETOOLONG
              Soit  la  longueur totale de pathname est supérieure à PATH_MAX, soit un élément de pathname a une
              longueur plus grande que NAME_MAX. Sur les systèmes GNU il n'y  a  pas  de  limite  absolue  à  la
              longueur du nom d'un fichier, mais certains autres systèmes en ont une.

       ENOENT Un  des  répertoires  du chemin d'accès nom_chemin n'existe pas ou est un lien symbolique pointant
              nulle part.

       ENOSPC Le répertoire, ou le système de fichiers, n'a pas assez de place pour un nouveau fichier.

       ENOTDIR
              Un élément, utilisé  comme  répertoire,  du  chemin  d'accès  nom_chemin  n'est  pas  en  fait  un
              répertoire.

       EROFS  pathname est sur un système de fichiers en lecture seule.

       Les erreurs supplémentaires suivantes peuvent survenir pour mkfifoat() :

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

       ENOTDIR
              pathname est un chemin relatif et dirfd est un descripteur d'un fichier et non d'un répertoire.

VERSIONS

       mkfifoat()  a  été  introduite dans la version 2.4 de glibc. Elle est implémentée au moyen de mknodat(2),
       qui est disponible dans Linux depuis le noyau 2.6.16.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────┼──────────────────────┼─────────┤
       │ mkfifo(), mkfifoat() │ Sécurité des threads │ MT-Safe │
       └──────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       mkfifo() : POSIX.1-2001, POSIX.1-2008.

       mkfifoat() : POSIX.1-2008.

VOIR AUSSI

       mkfifo(1), close(2), open(2), read(2), stat(2), umask(2), write(2), fifo(7)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,   Cédric   Boutillier    <cedric.boutillier@gmail.com>    et    Frédéric    Hantrais
       <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

GNU                                               13 août 2020                                         MKFIFO(3)