После создания дочернего процесса и его немедленного выхода (_exit ()) я хочу выполнить ожидание и проверить состояние. Теперь мне интересно, если в ветке 'else' конструкции if / else мне также нужно проверить наличие WIFSIGNALED. Насколько я понимаю, если я выполню ожидание, а) могла произойти ошибка (-1), дочерний элемент мог нормально завершиться с помощью (exit () или _exit ()), или он мог быть завершен сигнал, так что проверка может быть опущена, верно?
//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)
);
}