NOM
fifo - Fichier spécial file FIFO, tube nommé.
Un fichier spécial de file FIFO (First In, First Out) est l’équivalent
d’un tube (pipeline), sauf qu’il est accessible en tant que partie du
système de fichiers. Il peut être ouvert par plusieurs processus, tant
en lecture qu’en écriture. Lorsque des processus échangent des données
par le biais d’une file FIFO, le noyau transfère les informations de
manière interne, sans passer par une écriture réelle dans le système de
fichiers. Ainsi, le fichier spécial FIFO n’a pas de véritable contenu ;
c’est essentiellement un point de référence pour que les processus
puissent accéder au tube en employant un nom dans le système de
fichiers.
Le noyau assimile exactement un tube à chaque fichier spécial FIFO
ouvert par au moins un processus. La file FIFO doit être ouverte aux
deux extrémités (lecture et écriture) avant que des données puissent y
transiter. Normalement, l’ouverture d’une file FIFO est bloquante
jusqu’à ce que l’autre côté soit aussi ouvert.
Un processus peut ouvrir une FIFO en mode non bloquant. Dans ce cas,
l’ouverture en lecture seule réussira même si personne n’a encore
ouvert le côté écriture. L’ouverture en écriture seule échouera avec
l’erreur ENXIO (aucun périphérique ou adresse) si l’autre extrémité n’a
pas encore été ouverte.
Sous Linux, l’ouverture d’une file FIFO en lecture et écriture réussira
aussi bien en mode bloquant que non bloquant. POSIX ne précise pas ce
comportement. Ceci peut servir à ouvrir une FIFO en écriture, même si
aucun lecteur n’est prêt. Un processus qui utilise les deux côtés d’une
FIFO pour communiquer avec lui-même doit être très prudent pour éviter
les situations de blocage.
NOTES
Quand un processus essaye d’écrire dans une FIFO qui n’a pas été
ouverte en lecture de l’autre côté, le processus reçoit un signal
SIGPIPE.
Un fichier spécial de file FIFO peut être créé à l’aide de la fonction
mkfifo(3), et est indiqué par ls -l avec un type de fichier « p ».
VOIR AUSSI
mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2),
mkfifo(3), pipe(7)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et est maintenue par Julien Cristau
<julien.cristau@ens-lyon.org> et l’équipe francophone de traduction de
Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».