Sous Linux: écrire dans un FIFO
Question
J'ai créé une nouvelle FIFO à l'aide de la commande mkfifo
. J'ai un fichier texte f.txt
.
Je veux écrire le fichier texte dans ma FIFO. Comment? Existe-t-il une commande unix pour cela?
La solution
Vous pouvez utiliser cat
:
mkfifo /tmp/foo
cat f.txt > /tmp/foo
Vous verrez qu'il se bloque, car vous avez également besoin d'un processus de lecture, comme cat
.
cat /tmp/foo
Vous pouvez également commencer par lancer le processus de lecture puis le processus d'écriture.
Autres conseils
Il suffit de rediriger vers le tuyau:
mkfifo /tmp/pipe
cat f.txt > /tmp/pipe &
cat /tmp/pipe
Remarque, c’est à peu près ce que cat f.txt | cat
fait, mais il s'agit d'un canal nommé plutôt que d'un canal anonyme.
Identique à n'importe quel fichier, je pense:
cat f.txt > myfifo
La plupart des choses peuvent être traitées comme des fichiers sous Linux / Unix