阻塞进程函数 wait()和waitpid()

1.  wait()和waitpid()函数说明

wait()

进程一旦调用了wait(), 就立即阻塞自己,由wait自动分析是否有当前进程的某个子进程已经退出,如果让它找到了一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到一个子进程结束或者该进程接到了一个指定的信号为止。


waitpid()

waitpid()的作用和wait()一样,但它并不一定要等待第一个终止的子进程,它还有若干选项,如可提供一个非阻塞版本的wait()功能等。实际上wait()函数只是waitpid()函数的一个特例,在Linux内部实现wait()函数时直接调用的就是waitpid()函数。
wait()函数的实现:

static inline  pid_t  wait(int *wait_stat)  

{  

  return waitpid(-1,wait_stat,0);  

}  



2.  wait()和waitpid()函数格式说明

扫描二维码关注公众号,回复: 1094524 查看本文章

(1)  wait()函数格式如下:

(2)   waitpid()函数格式如下

猜你喜欢

转载自www.cnblogs.com/gangzilife/p/9105723.html