dies ist ein bis zu How to squeeze in additional parameters to a reaper function when a parent is signalled to kill a child (c)?wait()/waitpid() gibt 1, nicht pid des Kindes, wie man das beheben?
In meinem Reaper folgen(), ich versuche das Kind pid die Eltern zu erhalten, ist über (nicht brutal Wort hier) zu beenden. aber wait() gibt die PID des Kindes nicht zurück; Stattdessen gibt es 1 zurück. Ich kann nirgends ein Dokument für den Rückgabewert 1 finden. Irgendwelche Köpfe?
void reaper(int sig)
{
int status, killedpid;
while(killedpid = (/*waitpid(-1, &status, WNOHANG)*/wait(&status)) >= 0)
{
printf("reaper %d killed %d\n", getpid(), killedpid);
}
}
Meine Ergebnisse:
reaper 5933 killed 1 //actual child pid is 5936
Vielen Dank im Voraus!
Oh, ich sage weiter mit der Terminologie. Das gehört zum Spaß von * nix. "Das Kind starb, und die Eltern ernteten den Zombie-Prozess." – Thanatos