MKFIFO(3) Manuel du programmeur Linux MKFIFO(3)
NOM
mkfifo - Créer un fichier spécial FIFO.
SYNOPSIS
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo ( const char *pathname, mode_t mode);
DESCRIPTION
La fonction mkfifo crée un fichier spécial FIFO (tube
nommé) à l'emplacement pathname. mode indique les permis
sions 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érement. Plutot 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 pro
cessus 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.
VALEUR RENVOYÉE
La valeur renvoyée par mkfifo est 0 s'il réussit, ou -1
s'il échoue, auquel cas errno contient le code d'erreur.
ERREURS
EACCES L'un des répertoires dans pathname ne permet pas la
recherche (exécution).
EEXIST pathname existe déjà.
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 L'un des répertoire de pathname 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.
Linux 5 Novembre 1996 1
MKFIFO(3) Manuel du programmeur Linux MKFIFO(3)
ENOTDIR
Un élément de pathname n'est pas un répertoire.
EROFS pathname est sur un système de fichiers en lec
ture-seule.
CONFORMITÉ
POSIX.1
VOIR AUSSI
mkfifo(1), read(2), write(2), open(2), close(2), stat(2),
umask(2).
TRADUCTION
Christophe Blaess, 1997.
Linux 5 Novembre 1996 2