创建一个临时僵死进程

僵死进程定义

在Unix术语中一个已经中止、但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(可以用ps查看僵死进程,它的状态为Z)

实现

int main(void) {
    pid_t pid;

    if((pid = fork()) < 0) {
        err_sys("fork error");//fork创建子进程失败
    }else if(pid == 0) {
        printf("i am child");
        exit(0);//子进程退出
    }else {
        sleep(30);//将父进程休眠30s,在这30s之内子进程成为僵死进程,可用ps命令查看
        printf("i am parent");
    }
    waitpid(pid,NULL,0);//处理子进程
    exit(0);
}

在子进程退出,父进程还在休眠的时候使用ps axu命令可以看到我们创建的几个进程里有一个进程的状态为Z,即为僵死进程,在父进程休眠结束后会被waitpid()处理掉。

猜你喜欢

转载自blog.csdn.net/hei_ha_hei/article/details/77587432
今日推荐