[C] Pipe/Fork
Apaachee
Messages postés
248
Date d'inscription
Statut
Membre
Dernière intervention
-
Apaachee Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Apaachee Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois réaliser un programme en C dont le but est de créer (N-1) fils issus d'un même père et dont chacun d'entre eux est relié par un tube.
Le père transmet un entier au premier fils et cet entier devra parcourir tous les fils ensuite grâce aux tubes en l'incrémentant dans chaque passage dans un fils.
Je suis vraiment perdu pour le code et pour les pipes...
Je dois réaliser un programme en C dont le but est de créer (N-1) fils issus d'un même père et dont chacun d'entre eux est relié par un tube.
Le père transmet un entier au premier fils et cet entier devra parcourir tous les fils ensuite grâce aux tubes en l'incrémentant dans chaque passage dans un fils.
Je suis vraiment perdu pour le code et pour les pipes...
A voir également:
- [C] Pipe/Fork
- New pipe - Guide
- Faire un pipe sur mac ✓ - Forum Autres distributions Linux
- Fork CMS - Télécharger - Web Design
- The fork gratuit - Télécharger - Cuisine & Gastronomie
- C'est quoi le pipe - Forum Matériel & Système
2 réponses
Salut,
Déjà, tu peux commencer par faire le même exercice avec un seul fils (un seul fork).
Donc le père envoie un nombre à son fils, et son fils l'affiche (ne serait-ce que pour vérifier que ça marche ^^).
Voici un exemple de pipe : https://tldp.org/LDP/lpg/node11.html Tu peux t'en inspirer largement.
Une fois que t'aurais réussi, tu pourras passer à la création de plusieurs fils.
N'hésite pas à poster ton code ou/et à poser des questions techniques si tu as besoin d'aide.
Cdlt
Déjà, tu peux commencer par faire le même exercice avec un seul fils (un seul fork).
Donc le père envoie un nombre à son fils, et son fils l'affiche (ne serait-ce que pour vérifier que ça marche ^^).
Voici un exemple de pipe : https://tldp.org/LDP/lpg/node11.html Tu peux t'en inspirer largement.
Une fois que t'aurais réussi, tu pourras passer à la création de plusieurs fils.
N'hésite pas à poster ton code ou/et à poser des questions techniques si tu as besoin d'aide.
Cdlt
#include <unistd.h> #include <stdlib.h> #include <stdio.h> int main(){ int num_proc = 0; int nb_proc = 10; int essai; pid_t pid; do{ essai=0; do{ pid = fork(); essai ++; }while ((pid == -1)&&(essai<100)); if(essai!=100 && pid!=0){ num_proc++; } else if(pid==0){ printf("num_proc : %d \n",num_proc); pid = getpid(); _exit(pid); } }while ((pid!=0) && (num_proc<=nb_proc)); }
J'ai créé mes N processus, ne reste plus qu'à leur transmettre une variable incrémentée. (ton lien a l'air mort je ne vois pas ton exemple :S)