Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Combien de processus engendre l'évaluation de la commande :fork() && ( fork() || fork() ) ;
    Bonsoir!

    je suis en pleine révision d'UNIX et j'essaye de bien assimiler les forks.

    fork() dédouble le processus courant: un fils est crée. Les processus père et fils sont identiques: même code, mêmes descripteurs de fichiers et mêmes variables globales. Seul le pide permet de les différencier: dans le processus père l'instruction renvoit le pid du processus fils, dans le processus fil, elle renvoie 0.

    Mais la question que je me pose est combien de processus engendre l'évaluation de la commande:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    fork() && ( fork() || fork() ) ;


    la réponse donnée est
    dans l'ensemble trois autres processus
    je ne comprends pas, ce ne serait pas: au plus trois processus? En appliquant le raisonnement logique: si le premier membre est faux, pas de processus par les autres, si le deuxième est vrai pas de troisième?

    Est-ce que je me trompe? Est-ce de l'amateurisme?

  2. #2
    Expert éminent sénior
    Bonjour

    Tu comprends bien que chaque fork renvoie une valeur juste et une valeur fausse.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    1
    |\
    2 3
      |\
      4 5
      |\
      6 7


    Il y a 4 branches à cet arbre.
    4 processus présents dont 1 seul père, cela fait 3 processus engendrés.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre du Club
    Dac, merci beaucoup, je pensais 3 à la base, ce doit être le || qui a dû m'induire en erreur, ton graphe est très explicite!