SegFault II.
24-08-2002, 17:57
Hi!
Ich bin noch ziemlich unerfahren, was den Einsatz von fork() angeht (versuche es heute zum ersten mal zu verwenden).
Und da ist mir etwas seltsames aufgefallen, was ich mir nicht erklären kann.
Am besten ist, ich hänge einfach mal einen Beispiel-code an.
Dieser Code entspricht in etwa meinem eigentlichen Programm (es soll ein kleiner Server werden, der zunächst nur Anfragen und Daten von mehreren Clients blockierungsfrei beantworten soll).
Das Problem ist, dass die Childprozesse sich nicht beenden wenn ihre Arbeit getan ist.
Nachdem die Funktion machWas() ausgeführt wurde, wird als nächstes die Funktion machNochWas() ausgeführt und das exit(0) anscheinend einfach übersprungen.
Wenn ich jedoch das "pid = fork();" durch "pid = 0;" ersetze, so dass der Hauptprozess die weiteren Funktionen aufruft, läuft alles wie erwartet ab und der Prozess beendet sich nach der Ausführung von machWas();
Mach ich was falsch?
Ich bin noch ziemlich unerfahren, was den Einsatz von fork() angeht (versuche es heute zum ersten mal zu verwenden).
Und da ist mir etwas seltsames aufgefallen, was ich mir nicht erklären kann.
Am besten ist, ich hänge einfach mal einen Beispiel-code an.
Dieser Code entspricht in etwa meinem eigentlichen Programm (es soll ein kleiner Server werden, der zunächst nur Anfragen und Daten von mehreren Clients blockierungsfrei beantworten soll).
Das Problem ist, dass die Childprozesse sich nicht beenden wenn ihre Arbeit getan ist.
Nachdem die Funktion machWas() ausgeführt wurde, wird als nächstes die Funktion machNochWas() ausgeführt und das exit(0) anscheinend einfach übersprungen.
Wenn ich jedoch das "pid = fork();" durch "pid = 0;" ersetze, so dass der Hauptprozess die weiteren Funktionen aufruft, läuft alles wie erwartet ab und der Prozess beendet sich nach der Ausführung von machWas();
Mach ich was falsch?