chickenwings
Erfahrenes Mitglied
Hallo Leute,
bin in der misslichen Lage ein Programm schreiben zu müssen, das einen Sohn und einen Enkel erstellt. Nun, das Erzeugen des Sohnes geht auch, nur bin ich mir nicht sicher, wie ich den Enkel erzeuge bzw. wie ich die Prozesse unterscheide. Mein Ansatz ist bisher folgender:
nachdem ich das Programm ausgeführt habe, ergeben meine Ausgaben folgendes:
Sohn mit ID 0 erzeugt
Enkel mit ID 0 erzeugt
Enkel mit ID 3155 erzeugt
Das erste was ich nicht verstehe ist, warum nun zweimal ein Enkel erzeugt wird?
Desweiteren sollen in einer Schleife Sohn und Enkel über eine PIPE lesen und schreiben. Jedoch ist mir nicht klar, wie ich nun Vater, Sohn und Enkel unterscheide, zumal es einen Sohn mit einer PID=0 gibt und einen Enkel mit einer PID=0.
Hat jamand eine Idee, wie ich das am Besten bewerkstelligen kann?
gruss
chickenwings
bin in der misslichen Lage ein Programm schreiben zu müssen, das einen Sohn und einen Enkel erstellt. Nun, das Erzeugen des Sohnes geht auch, nur bin ich mir nicht sicher, wie ich den Enkel erzeuge bzw. wie ich die Prozesse unterscheide. Mein Ansatz ist bisher folgender:
Code:
pid_t cpid; //aktuelle PID
pid_t enkel;
...
if ((cpid==fork())<0) {
printf("Fehler, Sohn konnte n. erzeugt werden\n");
exit(0);
}
if (cpid==0) {
printf("Sohn mit ID %d erzeugt\n", cpid);
if ((enkel=fork())<0) {
printf("Fehler, Enkel konnte n. erzeugt werden\n");
exit(0);
}
else {
printf("Enkel mit ID %d erzeugt\n", enkel);
}
}
...
nachdem ich das Programm ausgeführt habe, ergeben meine Ausgaben folgendes:
Sohn mit ID 0 erzeugt
Enkel mit ID 0 erzeugt
Enkel mit ID 3155 erzeugt
Das erste was ich nicht verstehe ist, warum nun zweimal ein Enkel erzeugt wird?
Desweiteren sollen in einer Schleife Sohn und Enkel über eine PIPE lesen und schreiben. Jedoch ist mir nicht klar, wie ich nun Vater, Sohn und Enkel unterscheide, zumal es einen Sohn mit einer PID=0 gibt und einen Enkel mit einer PID=0.
Hat jamand eine Idee, wie ich das am Besten bewerkstelligen kann?
gruss
chickenwings