questo è un follow-up a How to squeeze in additional parameters to a reaper function when a parent is signalled to kill a child (c)?wait()/waitpid() restituisce 1, non pid di child, come risolverlo?
Nel mio Reaper(), cerco di ottenere il figlio di PID il genitore sta per finire (parola non brutale qui). ma aspetta() non restituisce il pid del bambino; restituisce invece 1. Non riesco a trovare un documento per il valore restituito di 1 in qualsiasi luogo. Qualche testa a testa?
void reaper(int sig)
{
int status, killedpid;
while(killedpid = (/*waitpid(-1, &status, WNOHANG)*/wait(&status)) >= 0)
{
printf("reaper %d killed %d\n", getpid(), killedpid);
}
}
I miei risultati:
reaper 5933 killed 1 //actual child pid is 5936
Grazie in anticipo!
Oh, dico di andare avanti con la terminologia. Fa parte del divertimento di * nix. "Il bambino è morto e il genitore ha raccolto il processo degli zombi". – Thanatos