PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prozesse überlagern



mithras
08-11-2002, 18:36
Ich erstelle mit fork() zwei Prozesse.
Im Elternprozess, kann der User durch eine bestimmte Eingabe
den Kindprozess via Signal SIGKILL beenden.

Nun muss ich den beendeten Kindprozess aber wieder (mit neuen Variablen-Werten) starten (dazu verwende ich die Funktion setjmp und longjmp (ist ähnlich goto).
Um den beendeten Kindprozess zu starten muss ich doch aber auch den Elternprozess neustarten.
Und dabei wird jedesmal ein Zombie kreiert! Da der Elternprozess ja noch nicht beendet wurde.

Hab schon einiges nun probiert, aber nix hat hingehauen!

pik7
08-11-2002, 19:19
hallo,

Ich denke waitpid wird dir weiterhelfen

man waitpid

The Ripper
09-11-2002, 14:27
Wenn du nicht genau weisst wann sich dein Kindprozess beendet, kannst du auch einen Signalhandler für SIGCHLD installieren
man 2 signal