当子进程执行失败时,可能不会发送个父进程结束的指令,因此会产生一个僵尸进程。
解决方法如下:
# include <stdio.h>
# include <stdlib.h>
# include <sys/types.h>
# include <sys/wait.h>
# include <unistd.h>
int main()
{
popen();
signal(SIGCHLD,SIG_IGN);
pclose();
}
其中方法就是 signal(SIGCHLD,SIG_IGN);这句话
还有别忘了pclose();
完!!