进程等待有两个接口:
1、pid_t wait(int *);
// 阻塞等待任意一个进程退出,然后传入wait的参数就会被修改成等待的pid
#include <stdio.h>
#include <stdlib.h>
int main(){
int pid = fork();
if (pid < 0){
peeror();
return;
}
if(pid == 0){
wait(NULL);
return 0 ;
}
perror() // 打印一下上一次调用的系统接口犯的什么错误
2、pid_t waitpid(pid_t pid, int *status, int options);
参数解释
1、pid_t pid->输入的是需要等待的pid
pid == -1,就是等待任意一个进程
pid > 0,就是等待参入的特定的进程
2、int *status ->输出的是等待到的进程pid
3、int options ->WNOHONG:将waitpid设置为非阻塞
实例:
waipid(7737,NULL,0);// 等待进程7737,无返回值,默认阻塞
waipid(-1,NULL,WNOHONG);// 等待任意进程,无返回值,不阻塞
返回值:若WNOGONG被指定,没有子进程退出这立即报错返回0;没有子进程就直接报错返回-1.
非阻塞的轮循操作