Partage
  • Partager sur Facebook
  • Partager sur Twitter

fork() dans une boucle

    15 décembre 2018 à 21:11:12

    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    int main()
    {
      int i=0;
      for(i=0;i<2;i++)
      {
        printf("a\n");
        fork();
        printf("b\n");
      }
    }

    Pour moi, ce code devrait renvoyer abab (boucle de base) et bbbb(2 pour chaque fork). Je ne comprends pas pourquoi il a toujours un a en plus...  J'observe l'affichage suivant --> abababbbb
    Merci de votre aide et bonne soirée :) 
    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2018 à 22:03:28

      Pere: ----[a]----(fork)----(b)----(a)----(fork)----(b)
      Fils2:              |                       +------(b)
      Fils1:              +------(b)----(a)----(fork)----(b)
      FilsDeFils1:                                +------(b)

      il y a bien 3 a et 6 b.

      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        16 décembre 2018 à 0:42:57

        A noter que l'ordre d'affichage des 'a' et 'b' est indéterminé. Pour régler ça, il y a wait() & co.
        • Partager sur Facebook
        • Partager sur Twitter

        fork() dans une boucle

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown