Posez votre question Signaler

C++ et Processus (fork)

Info_89 - Dernière réponse le 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
Lire la suite 

C++ et Processus (fork) »

Suggestions
5 réponses
Réponse
+0
moins plus
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>
Ajouter un commentaire
Réponse
+0
moins plus
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
loupius - 9 févr. 2009 à 00:55
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.
kilian- 9 févr. 2009 à 01:10
Moi, comme d'habitude, chaine aléatoire :-)
Allez hop, Arte y'a un ptit film sympa....
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « C++ et Processus (fork) » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?