我有以下问题:
我有一个主(父)进程,它使用 fork 函数创建另外的子进程。我正在捕获子进程的状态以消除僵尸进程。当只有一个子进程时,可以正确地捕获其状态;但是当父进程创建了大约 30 个进程时,就会留下大约 4 个僵尸进程=父进程无法捕获所有子进程(返回状态/状态 = <defunct>)。
使用以下语句来捕获子进程的状态
void selfkill(int status) {
wait(&status);
}
signal(SIGCHLD, selfkill);
提前感谢您。