#include <signal.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>void sigchld_handler(int signo) {// 回收所有退出的子进程while (waitpid(-1, NULL, WNOHANG) > 0);
}int main() {signal(SIGCHLD, sigchld_handler);for (int i = 0; i < 5; ++i) {if (fork() == 0) {sleep(1);_exit(0);}}sleep(10);return 0;
}