Après avoir créé un processus fils et l'avoir quitté immédiatement (_exit()), je souhaite effectuer une attente et vérifier l'état. Maintenant je me demande si dans la branche 'else' de la construction if/else je dois aussi vérifier WIFSIGNALED. Pour autant que je comprenne, si j'effectue une attente, a) une erreur aurait pu se produire (-1), l'enfant aurait pu se terminer normalement par un (exit() ou _exit()), ou il aurait pu être terminé par un signal, de sorte que le contrôle pourrait être omis, non?Vérification de l'état après wait()
//remainder omitted
int status;
pid_t t_pid = wait(&status);
if (t_pid == -1) {
perror("wait");
exit(EXIT_FAILURE);
}
if (WIFEXITED(status)) {
printf("child terminated normally, status = %d\n",
WEXITSTATUS(status)
);
} else { // <-- do it have to check for WIFSIGNALED() here?
printf("child was terminated by a signal, signum = %d\n",
WTERMSIG(status)
);
}
+1 Joli lien par la voie ^^ – helpermethod