实例内容:一个父进程创建两个子进程,其中一个子进程运行“ls -l”的指令,另一个子进程在等待5s之后异常退 出,父进程先用阻塞方式等待第一个子进程的结束,然后用非阻塞方式等待另一个子进程的退出, 待收集到第二个子进程结束的信息,父进程就返回。
先了解下waitpid函数的应用:
表头文件
|
#include<sys/types.h> #include<sys/wait.h> |
定义函数
|
pid_t waitpid(pid_t pid,int * status,int options); |
函数说明
|
waitpid()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则参数status可以设成NULL。参数pid为欲等待的子进程识别码,其他数值意义如下:< |