僵尸进程即为进程已经执行完毕,但是其父进程没有调用wait/waitpid,则该进程将变成一个僵尸进程,虽然没有执行,但占用系统中的一个PCB空间。僵尸进程多的话,可以将系统卡死。
僵尸进程的实现为:使用folk创建一个子进程,让子进程进来之后很快就退出,父进程什么也不做,即没有调用wait/waitpid,所以该子进程就成为了一个僵尸进程。
int main()
{
pit_t id=folk();//folk返回两个值,给父进程返回子进程的pid,给子进程返回0,所以返回0表示子进程创建成功。
if(id == 0)
{
printf("this is child process\n");
exit(1);
}
else
sleep(1000);