僵尸进程:
如果子进程退出时,没有给父进程反馈信息(1.结果正确退出 2.结果不正确退出 3.程序异常终止),且父进程没有回收,可能造成“僵尸进程”,进而引发内存泄漏。
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
pid_t id = fork();
if(id == 0)
{
//child
printf("child pid = %d",getpid());
exit(1);
}
else if(id > 0)
{
//father
while(1)
{
printf("father pid = %d\n",getpid());
sleep(2);
}
}
else
{
perror("fork");
}
return 0;
}
father pid = 7079
child pid = 7080
root 7079 0.0 0.0 4168 344 pts/0 S+ 16:52 0:00
root 7080 0.0 0.0 0 0 pts/0