Bonjour, à nouveau je dois me résoudre à faire appel à vos connaissances!
Voici mon problème:
J'ai créer un processus Père qui va créer des Fils à l'aide de la fonction fork().
Jusqu'ici pas de problèmes.
Ensuite, j'ai remplacer le fils par un programme à l'aide de la fonction execlp().
Voici le code en question:
Note la fonction Trace peut être considérée comme un simple printf();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Trace("Controle: Lancement de Robot"); if ((idRobot = fork()) == -1) { perror("Controle: Erreur de creation de Chemin"); Sortie(1); } if (!idRobot) { /* processus fils */ sprintf(szBuffer, "%d", dpipe[1]); sprintf(szQueue, "%d", dpipe[0]); execlp("./Robot","./Robot","5",szQueue, szBuffer, NULL); perror("Controle: Erreur de execl du programme Robot"); }
Mon gros problème est que je souhaite créer un pipe entre plusieurs processus fils!
Pour créer le pipe, c'est simple à l'aide de la fonction pipe(int descripteurs[2])
Alors si j'ai bien compris le système, je crée mon pipe dans le processus père, mais maintenant, je ne sais pas comment y accéder depuis le fils ! Je suis perdu pour ça. Je n'arrive pas à comprendre comment envoyer les descripteurs aux fils. J'ai déjà essayé pauvrement en ajoutant des arguments au processus fils... Mais ça n'a pas l'air de marcher très fort.
Bref, j'espère que je me suis bien fait comprendre.
Mon problème est que je ne sais pas comment récupérer le pipe dans mes processus fils ! Et donc, je ne sais rien faire avec...
Merci déjà de votre aide précieuse
Partager