Pid /break

Bonjour,
1-for(i=0;i<4;i++)
2-{pid =fork();
3-if pid>0
4-break;
5-printf("hello processu %d de pere %d \n",getpid(),getppid());}
que devient cette arborescence si on élimine les deux lignes 3 et 4??
je execute ce code et je fait l'elimination des ses deux ligne mais :-(
je pas compris

Et merci
Configuration: Windows XP Internet Explorer 7.0

3 réponses

  1. Modérateur
    Il suffit de lire la documentation :

    man fork


    (dans une console ou dans google) :

    FORK(2)                                     Manuel du programmeur Linux 
    
    NOM
           fork - Créer un processus fils
    
    SYNOPSIS
           #include <unistd.h>
    
           pid_t fork(void);
    
    ...
    
    VALEUR RENVOYÉE
           En cas de succès, le PID du fils est renvoyé au parent, et  0  est
           renvoyé  au  fils.  En cas d'échec -1 est renvoyé au parent, aucun
           processus fils n'est créé, et errno contient le code d'erreur.


    Donc le if permet ici de vérifier que le processus fils a été créé. Ainsi ce test permet de différencier le code selon qu'on est dans le processus fils ou dans le processus parent.

    Bonne chance
    1. oui je sais mais le probleme quand va eliminer break je n'arrive pas a comprender
      1. Modérateur
        Désolée mais je n'ai pas compris ce que tu as dit. Fais un effort sinon je vais être obligée de modérer :s

        Bonne chance