Bonjour tout le monde de la part d'un éternel débutant.

Je fais face à un problème dont je ne perçois pas un embryon de solution.

J'ai deux programmes en C (p1 et p2) dont l'output de p1 et l'input de p2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
p1 >fichier_intermediaire
p2 <fichier_intermediaire >output_global
Ceci fonctionne lorsque fichier_intermediaire est écrit.

Mais si ce fichier est un fifo, ça ne marche plus...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
mkfifo myfifo
p1 >myfifo &
p2 <myfifo >output_global
p2 me renvoie un message d'erreur de lecture de l'input qu'il attend
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Error reading tree number 1: .
(p2 est un programme lisant des arbres phylogénétiques en biologie pour simuler des séquences d'ADN).

Je me demandais si quelqu'un avait une hypothèse sur pourquoi cela marche avec un fichier écrit, mais pas avec un pipe ?

A bientot!
Myca