C++ et Processus (fork)

Fermé
Info_89 - 8 févr. 2009 à 22:01
 Info_89 - 10 févr. 2009 à 17:57
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

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>
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
9 févr. 2009 à 00:36
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
0
Je crains que nous n'ayons pas le code ce soir!
Je regarde Direct Poker jusqu'à la fin et je vais me coucher ;-)
Bonne soirée.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > loupius
9 févr. 2009 à 01:10
Moi, comme d'habitude, chaine aléatoire :-)
Allez hop, Arte y'a un ptit film sympa....
0
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
0