任务要求:
1、创建一个孤儿进程
2、创建一个夫进程
孤儿进程程序图如下
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(int argc, const char *argv[])
{
pid_t PID=0; //定义子进程ID号
if(EOF==(PID=fork())) //判断是否创建子进程成功
{
perror("fork");
return -1;
}
printf("%d创建完毕\n",PID);
while(1)
{
if(PID>0)
{
printf("父进程\n"); //判断父进程是否继续
return -1;
}
if(0==PID)
{
printf("子进程结束\n"); //判断子进程是否继续
//return -1;
}
sleep(1); //防止跳跃过快
}
return 0;
}
效果图如下
输出创建时得到的子进程的PID号来执行kill -9 pid(号)指令,强制结束该子进程;
效果如下图所示:
僵尸进程代码如下图:
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(int argc, const char *argv[])
{
pid_t PID=0; //定义子进程ID号
if(EOF==(PID=fork())) //判断是否创建子进程成功
{
perror("fork");
return -1;
}
printf("%d创建完毕\n",PID);
while(1)
{
if(PID>0)
{
printf("父进程\n"); //判断父进程是否继续
}
if(0==PID)
{
printf("子进程结束\n"); //判断子进程是否继续
return -1;
}
sleep(1); //防止跳跃过快
}
return 0;
}
僵尸进程效果如下图: