Provided by: manpages-fr-dev_4.23.1-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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.