pid_t wait(pid_t pid,int * status,int options)
pid>0时,只等待pid与该参数相同的子进程,如果该子进程一直没有退出,那么父进程会一直阻塞;
pid=0时,会等待同一个进程组的子进程,若子进程加入了其他进程组,waitpid()不再关心它的状态;
pid=-1时,waitpid()与wait()函数相同,将阻塞等待并回收一个子进程;
pid<-1时,会等待指定进程组的任何子进程,进程组的id等于pid的绝对值;
发信号,kill(子进程ID, SIG信号)如果不只一个子进程,需要把所有的子进程ID存起来,然后用上述方法一个一个的kill
SIG信号需要能使子进程退出,如SIGQUIT,SIGINT...等一些默认的信号;也可以在子进程中捕获某些信号,然后子进程收到后自己退出
注意:最好是在子进程退出时,父进程要等待所有子进程退出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)