C++ et Processus (fork)

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
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. 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
    1. Modérateur
      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
      1. 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
      2. Modérateur
        @loupiusMoi, comme d'habitude, chaine aléatoire :-)
        Allez hop, Arte y'a un ptit film sympa....
        0
    2. 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