#include <stdio.h>
#include <sys/wait.h>

void sig_chld(int signo) {
    pid_t pid;
    int stat;

    pid = wait(&stat);
    printf("child %d terminated\n", pid);
    return;
}

警告:在信号处理函数中调用诸如printf这样的标准I/O函数是不合适的(为什么)