Le programme ci-dessus, j’ai tapé sous linux. Il doit en principe connecter un client et un serveur dans des terminaux distincts. Mais quand je les lance dans le bon ordre, c’est à dire
Les terminaux ne font rien. Il n’imprime même pas la partie "Trying to connect"
de la première instruction printf
. Quelle est l’erreur ici?
MODIFIER
J’ai vérifié la valeur de retour de mkfifo
comme l’a dit @parapura rajkumar. Mais cela rest le même. Voici mon code modifié pour le serveur.
if(mkfifo("fifo1",0666)<0) { printf("Error"); } if(mkfifo("fifo2",0666)<0) { printf("Error"); } fflush(stdout);
Vous avez fait l’impasse. Le serveur attend ouvert (“fifo1”, O_RDONLY) et le client attend ouvert (“fifo2”, O_RDONLY).
Modifier client.c:
int writefd = open("fifo1",O_WRONLY); int readfd = open("fifo2",O_RDONLY);