Provided by: manpages-fr-dev_4.27.0-1_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 de blocs de disque ou d'inœuds de l'utilisateur sur le système de fichiers a été atteint.

       EEXIST nom_chemin  existe  déjà. Cela inclut le cas où nom_chemin 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.

ATTRIBUTS

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

VERSIONS

       Elle est implémentée au moyen de mknodat(2)

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       mkfifo()
              POSIX.1-2001.

       mkfifoat() :
              glibc 2.4. 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
       <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>,     Frédéric     Hantrais
       <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@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  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                          mkfifo(3)