fork() baum



  • Hallo,
    habe eine Frage zum fork baum.
    soll ein C-Programm schreiben das einen fork baum erzeugt.

    bsp: --------1

    2--------------------3

    2.1-------2.2 -----------------4

    --------------------------------------5

    weiss nicht ob ich es richtig verstanden habe.
    also mit fork wird ein prozess erzeugt.

    bsp:

    #include <stdio.h>
    #include <unistd.h>
    #include "sys/types.h"
    
    int main()
    
    {
     int sohnpid;
     sohnpid=fork();  // prozess wird hier erzeugt 
    
    //------------- das wäre der Vater -----------
      if(sohnpid>0){
        printf("Der Vater ist hier Aktiv,Kind Prozess id PID: %d\n",sohnpid);
        int cp=getpid();
        int pp=getppid();
    //------------ das hier wäre dann die PID von denn eltern vom sohn und 
    //------------ die pid der eltern wäre hier praktisch von dort wo das programm
    //------------- gestartet wurde also die shell
        printf("\n Eltern Prozess PID:% die PID: meiner Eltern %d\n",cp,pp);
    
        }
      else if(sohnpid==0){
        int cp=getpid();
        int pp=getppid();
        printf("Der Sohnist Aktiv\n\n");
    //------------- die pid der eltern wäre hier der vater oder?
        printf("Kind Prozess PID:%d Meiner Eltern habe diese PID:%d",cp,pp);
    
       }
    
    }
    

    also wäre es so wenn ich denn Prozess erzeuge ,shell->vater->kind oder?
    wenn ich jetzt einen fork baum erzeugen will müsste ich im oberen beispiel immer weitere fork prozesse erzeugen oder ?

    1 wäre dann der vater und dort werden 2 weitere prozesse erzeugt 2 und 3 oder?

    unter 2 und 3 werden wieder 2 weitere prozesse erzeugt also 2 weitere Kinder oder?

    danke und gruß peer



  • fork-Baum? Was ist das für ne sinnlose Aufgabe?

    Hier ist n fork-Baum 😉

    #include <unistd.h>
    
    int main() {
      for(;;)
        fork();
    }
    


  • Hmmm...ja, der Baum hat was 😉

    gruss
    v R


Anmelden zum Antworten