reference:Wait System Call in C
只强调几点,剩下的直接看参考链接内容就好了,不是偷懒,而是里面内容写的很好了,没必要再写一遍了,这种东西就是单纯的系统调用而已,理解了功能,就完事了,没啥好说的。
- 如果父进程等待1个子进程,使用
wait(NULL)
就行 - 如果等待多个子进程
- 如果不需要指定特定进程,使用多个
wait(NULL)
就行 - 如果需要指定,则需要使用
waitpid(pid, &stat, option)
,对于option,有两个选项,一个是0
,就相当于是wait,阻塞父进程,干等着,还有WNOHANG
不会阻塞父进程,只是看看执行完没有,然后给出一个返回值(如果子进程结束,返回子进程pid,没结束,就返回0,如果waitpid已经等到子进程结束返回pid了,再使用waitpid就会fanh-1
,你都等来了,再等就啥也等不到了。)
- 如果不需要指定特定进程,使用多个
此外就是关于返回码信息了,wait的唯一参数和waitpid的第二个参数,都可以赋值&stat
或NULL
,其中stat定义为int stat;
。
给一些宏命令传递返回码的值,能够做出相关的判断。
具体细节参考链接文章即可。