Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

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

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

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

       int mkfifoat(int dirfd, const char *chemin, 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

       La  fonction  mkfifo() crée un fichier spécial FIFO (tube nommé) à l'emplacement chemin. mode indique les
       permissions d'accès. Ces permissions sont modifiées par la valeur d'umask du processus : les  permissions
       d'accès effectivement adoptées sont (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 chemin 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  chemin est un chemin relatif et si dirfd est la valeur spéciale AT_FDCWD, alors chemin est interprété
       relativement au répertoire de travail courant du processus appelant (comme pour mkfifo()).

       Si pathname est absolu, alors dirfd est ignoré.

       Consultez openat(2) pour une explication sur la nécessité de mkfifoat().

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 et errno est défini pour préciser l'erreur.

ERREURS

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

       EBADF  (mkfifoat()) chemin est relatif mais dirfd est ni AT_FDCWD, ni un descripteur de ficher valable.

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

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

       ENAMETOOLONG
              Soit  la  longueur  totale  de  chemin  est supérieure à PATH_MAX, soit un élément de chemin 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.

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

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

VERSIONS

       mkfifoat() a été introduite dans la glibc 2.4 de glibc. Elle est implémentée au moyen de mknodat(2),  qui
       est disponible depuis Linux 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 │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       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)

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  <tvi‐
       gnaud@mandriva.com>,  François  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fe‐
       vrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau  <jcristau@de‐
       bian.org>,   Thomas   Huriaux   <thomas.huriaux@gmail.com>,  Nicolas  François  <nicolas.francois@centra‐
       liens.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.boutil‐
       lier@gmail.com>,   Frédéric   Hantrais   <fhantrais@gmail.com>   et  Jean-Pierre  Giraud  <jean-pierregi‐
       raud@neuf.fr>

       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 à de‐
       bian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.03                    5 février 2023                                        mkfifo(3)