僵尸进程和孤儿进程的代码实现

僵尸进程:

        子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入z状态。

#include
#include

int main(){
   pid_t id = fork():
   if(id < 0){
      perror("fork");
      return 1;
   }
   else if(id > 0){
      printf("parent [%d] is sleeping\n",getppid());
      sleep(5);
   }
   else{
      printf("child [%d] is begining\n",getpid());
      sleep(2);
      exit(1);
   }
   return 0;
}

孤儿进程:

       父进程提前退出,子进程就被称为“孤儿进程”。

  孤儿进程被1号init进程领养,由init进程回收。

#include
#include
#include

int main(){
   pid_t id = fork();
   if(id < 0){
      perror("fork");
      return 1;
   }
   else if(id == 0){
      printf("child pid : %d\n",getpid());
      sleep(5);
   }
   else{
      printf("parent pid ; %d\n",getppid());
      sleep(2);
      exit(0);
   }
   return 0;
}

        

你可能感兴趣的:(Linux)