我正在读关于wait()
Unix 系统书中的函数。本书包含一个程序,该程序具有wait(NULL)
在里面。我不明白那是什么意思。在其他程序中有
while(wait(NULL)>0)
……这也让我摸不着头脑。
有人能解释一下上面的函数在做什么吗?
man wait(2) http://linux.die.net/man/2/wait
所有这些系统调用都用于等待状态更改
调用进程的子进程,并获取有关子进程的信息
谁的状态已经改变。状态改变被认为是: 子进程终止;孩子被信号拦住了;或者孩子被信号恢复
So wait()
允许进程等待,直到其子进程之一更改其状态(例如存在)。如果waitpid()
使用进程 ID 进行调用,并等待该进程specific子进程改变其状态,如果pid
没有指定,则相当于调用wait()
它等待any子进程改变其状态。
The wait()
函数在成功时返回子进程 pid,因此当在如下循环中调用它时:
while(wait(NULL)>0)
这意味着等待所有子进程退出(或更改状态)并且不再等待子进程(或直到发生错误)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)