PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit fork()



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?

nobody0
24-08-2002, 20:10
Vielleicht wären Pthreads passender und vielleicht hilft das Buch "Pthreads Programming" weiter.

SegFault II.
24-08-2002, 20:18
Hmm
Gut, dann werde ich mich mal mit pthreads beschäftigen.
Hab da ein kleines Tutor zu gefunden...
Vielleicht komm ich ja damit weiter

Danke erstmal (das überhaupt jemand antwortet, was in Foren ja nicht umbedingt selbstverständlich ist).

Internette Grüße
SegFault II.

nobody0
25-08-2002, 16:30
Also in dem Buch ist auch fork beschrieben; so dass es Dir sicherlich weiterhilft.
Ich meine, man kann das Buch von oreilly zumind. teilweise downloaden, aber das sollte es in vielen Bibliotheken und jeder Uni-Bibliothek geben.