Linux

    xiaoxiao2022-07-04  139

    模拟实现僵尸进程, 孤儿进程的场景.

    1.僵尸进程

    僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。

    所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态

    下面创建一个维持30秒的僵死进程例子

    #include<stdio.h> #include<unistd.h> #include<stdlib.h> int main() { pid_t id = fork(); if(id < 0) { perror("fork"); return 1; } else if(id > 0 ) { //father printf("father [%d] is sleeping...\n",getpid()); sleep(30); } else { printf("child [%d] is begin Z...\n",getpid()); sleep(5); exit(EXIT_SUCCESS); } return 0; }
    最新回复(0)