Какая польза от игнорирования сигнала `SIGCHLD` с помощью` sigaction (2) `?

Оказывается, мы можем предотвратить появление процесса зомби (то есть того, чей родитель неwait() для этого_exit()) указавSIGCHLD сигнал, который нужно игнорировать сsigaction() его родителем. Тем не менее, похоже,SIGCHLD в любом случае по умолчанию игнорируется. Как это работает?

int main (void) {
    struct sigaction sa;
    sa.sa_handler = SIG_IGN; //handle signal by ignoring
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = 0;
    if (sigaction(SIGCHLD, &sa, 0) == -1) {
        perror(0);
        exit(1);
    }
    int pid = fork();
    if (pid == 0) { //child process
        _exit(0);
    }
    do_something(); //parent process
    return 0;
}

Ответы на вопрос(1)

Ваш ответ на вопрос