C++ et Processus (fork)
Info_89
-
Info_89 -
Info_89 -
Bonjour la communauté de CCM =)
Voila je vous explique mon post
je cherche à créer 2 processus fils (via l'intermédiaire d'un fork), et que 1 processus compte de 1 à 100 et l'autre de 101 à 200 et enregistrer le résultat dans un fichier txt pour ensuite que le processus père lise le fichier.txt en utilisant 2 processus fils qui effectuent en même temps la lecture des chiifres <=100 ou >100.
Le problème c'est que j'arrive pas à faire cela, à chaque fois je crée trop de processus et donc je suis obliger de reboot mon pc (c'est dangereux le fork ^^ )
Auriez-vous des solutions / conseils pour pouvoir réaliser mon programme ?
Merci d'avance
Voila je vous explique mon post
je cherche à créer 2 processus fils (via l'intermédiaire d'un fork), et que 1 processus compte de 1 à 100 et l'autre de 101 à 200 et enregistrer le résultat dans un fichier txt pour ensuite que le processus père lise le fichier.txt en utilisant 2 processus fils qui effectuent en même temps la lecture des chiifres <=100 ou >100.
Le problème c'est que j'arrive pas à faire cela, à chaque fois je crée trop de processus et donc je suis obliger de reboot mon pc (c'est dangereux le fork ^^ )
Auriez-vous des solutions / conseils pour pouvoir réaliser mon programme ?
Merci d'avance
A voir également:
- Fork c++
- Fork CMS - Télécharger - Web Design
- The fork gratuit - Télécharger - Cuisine & Gastronomie
3 réponses
Je ne vois pas comment 3 processus (le père et 2 fils 'écrivain', puis le père et 2 fils 'lecteur') peuvent obliger à rebooter le pc; évidemment il s'agit de windoze mais quand même ;-))
Non, je pense qu'il faut voir le code pour trouver l'erreur.
Tiens, d'ailleurs, où se trouve le code ???
Nota: le code doit être débarrassé de tout ce qui est inutile et mis entre balises <code>
Non, je pense qu'il faut voir le code pour trouver l'erreur.
Tiens, d'ailleurs, où se trouve le code ???
Nota: le code doit être débarrassé de tout ce qui est inutile et mis entre balises <code>
Wep, fait péter le code ici!
Tu as pensé à utiliser waitpid?
Le père crée le fils A qui lui va créer B.
Le père attend A (waitpid)
A attends que B compte jusqu'à 100 (waitpid), puis A continue de compter à sa suite.
Et enfin même chose pour la lecture, à peu de choses près.
Note: pour compter tu pourrais utiliser une variable partagée (IPC) mais c'est lourd à gérer.
L'idéal: utiliser le pointeur du fichier, qui lui est partagé par tout le monde ;-)
Très important: http://www.commentcamarche.net/faq/sujet 10611 que fait un fork
Tu as pensé à utiliser waitpid?
Le père crée le fils A qui lui va créer B.
Le père attend A (waitpid)
A attends que B compte jusqu'à 100 (waitpid), puis A continue de compter à sa suite.
Et enfin même chose pour la lecture, à peu de choses près.
Note: pour compter tu pourrais utiliser une variable partagée (IPC) mais c'est lourd à gérer.
L'idéal: utiliser le pointeur du fichier, qui lui est partagé par tout le monde ;-)
Très important: http://www.commentcamarche.net/faq/sujet 10611 que fait un fork
Bonjour, merci de vos réponses
j'ai trouvé le problème à mon reboot, je faisais une boucle while mais mes conditions étaient fausses donc je créais trop de processus (le père créais un fils, qui lui même en créais un , ...etc... ), mais je n'arrive pas à faire lire mon fichier .txt par mes processus.
Quelqu'un aurait une solution ?
Merci d'avance
j'ai trouvé le problème à mon reboot, je faisais une boucle while mais mes conditions étaient fausses donc je créais trop de processus (le père créais un fils, qui lui même en créais un , ...etc... ), mais je n'arrive pas à faire lire mon fichier .txt par mes processus.
Quelqu'un aurait une solution ?
Merci d'avance