阻塞进程函数 wait()和waitpid()
Posted 一线码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阻塞进程函数 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()函数格式说明
(1) wait()函数格式如下:
(2) waitpid()函数格式如下
以上是关于阻塞进程函数 wait()和waitpid()的主要内容,如果未能解决你的问题,请参考以下文章