Posté(e) le 14 mars 200718 a bonjour, je viens de créer un programme en c concernant les pipes sous linux. A partir d'une mère je crée 2 filles. la 1ère fille lis le mot écris par la mère et ensuite celle-ci écris à son tour pour que la 2ème fille puisse lire. voila le programme : #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <string.h> #include <errno.h> #include <unistd.h> int main (void) { pid_t fille1,fille2; char messagea[] = "Reception fille 1"; char messageb[] = "Reception fille 2"; char message1[sizeof(messagea)]; char message2[sizeof(messageb)]; int i,j; int pd1[2]; int pd2[2]; int word1, word2, word3,word4; i = pipe(pd1); j = pipe(pd2); fille1 = fork (); fille2 = fork (); // Envoi de la mère à la fille 1 if (fille1 > 0 && fille2 > 0) { if (i == 0) { int word1 = write(pd1[1],messagea,sizeof(messagea)); } else { printf("Non Recpetion fille 1\n"); } } else { // Reception fille 1 et écriture à la fille 2 if (fille1 == 0) { word2 = read(pd1[0],message1,sizeof(message1)); printf("%s \n",message1); if (j == 0) { int word3 = write(pd2[1],messageb,sizeof(messageb)); } else { printf("Non Recpetion fille 2\n"); } } else // Reception fille 2 if (fille2 == 0) { word4 = read(pd2[0],message2,sizeof(message2)); printf("%s \n",message2); } else { return(0); } } } Maintenant ce que j'aimerais, se serait que dès que la mère écris dans le mot seulement la fille 1 puisse lire (donc en endormant la fille 2) et que dès que la fille 1 l'a lu 5 fois, la fille 2 se réveille et le lis. Pourriez vous me dire ce qu'il faut rajouter s'il vous plait ? Il ne doit pas y avoir beaucoup de modifications mais je n'y arrive pas. Merci beaucoup. Geoffrey
Posté(e) le 19 mars 200718 a Je ne m'y connais pas, donc je ne donnerais aucun conseil a part : Utilise les balises CODE pour ton code
Posté(e) le 19 mars 200718 a Je dirais : utilises des semaphores pour savoir qui doit répondre. Je te laisse un peu chercher sur comment ça marche.
Posté(e) le 29 mars 200718 a fork() wait() exit() (oui, je sais, c'est moche pour ce que c'est, mais, il pourra adapter sur des commandes) et au fait... comment tu fais des pipes sans dup/dup2 ? un ptit tour sur le man bonne chance
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.