C++ et Processus (fork)

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

3 réponses

  1. loupius
     
    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
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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. loupius
       
      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
      1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > loupius
         
        Moi, comme d'habitude, chaine aléatoire :-)
        Allez hop, Arte y'a un ptit film sympa....
        0
  3. Info_89
     
    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