对于子进程,wait()
和 waitpid()
函数可用于暂停当前进程的执行,直到子进程退出。但该函数不能用于非子进程。
还有其他函数可以等待任何进程退出吗?
最佳答案
没有任何东西与wait()
相同。通常的做法是使用kill(pid, 0)
进行轮询,并查找ESRCH
的返回值-1和errno
来指示进程消失了。
更新:从 linux 内核 5.3 开始,有一个 pidfd_open syscall,它为给定的 pid 创建一个 fd,当 pid 退出时可以轮询该 fd 以获取通知。
关于c - 如何等待非子进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42170132/