当前位置: 首页 > Linux

linux下进程(二)

时间:2023-04-06 01:27:47 Linux

linux下wait()函数孤儿进程孤儿进程就是父进程结束,还有一个子进程没有结束,那么这个子进程就变成了孤儿进程,并且孤儿进程自动使用init进程作为其父进程。当僵尸进程的子进程终止时,它与父进程的关系仍然会保留,直到父进程也正常调用wait()函数。当父进程没有调用wait或waitpid函数获取子进程的状态信息时,系统中仍然保存着子进程的进程描述符。这样的进程就变成了僵尸进程。下面是wait()函数和waitpid()函数的原型pid_twait(int*statloc);pid_twaitpid(pid_tpid,int*statloc,intoptions);执行成功返回进程ID。#include#include#include#includeintmain(void){pid_tpid,childpid;if((pid=fork())>0){printf("那是父节点\n");if((childpid=wait(&status))>0)printf("孩子完成\n");for(inti=0;i<3;i++)printf("%d\n",i);}elseif(pid==0){printf("那是孩子\n");for(inti=0;i<3;i++)printf("%d\n",i);}else{printf("错误");}exit(0);}下面是结果从结果可以看出,wait在子进程终止之前阻塞了调用者。waitpid()函数可以等待一个特定的进程,它有几个选项来控制它等待的进程。