C 子进程是否可以等待它';的同级进程,并获取其退出状态?
我试图从子进程获取其“兄弟”的退出状态 我试过这样做:C 子进程是否可以等待它';的同级进程,并获取其退出状态?,c,process,fork,C,Process,Fork,我试图从子进程获取其“兄弟”的退出状态 我试过这样做: int main(void){ int i,j,status,p1; pid_t pids[2],pid; for (i = 0; i < 2; i++){ pids[i]=fork(); /*child 1*/ if(pids[i]==0 && i==0)exit(5); /*child 2*/ else if(pids[i]==
int main(void){
int i,j,status,p1;
pid_t pids[2],pid;
for (i = 0; i < 2; i++){
pids[i]=fork();
/*child 1*/
if(pids[i]==0 && i==0)exit(5);
/*child 2*/
else if(pids[i]==0 && i==1){
waitpid(pids[0],&p1,0);
exit(WEXITSTATUS(p1));
}
}
for(j=0;j<2;j++ ){
pid = wait(&status);
if(pid==pids[0]){
printf("child process 0 exit with status %d\n",WEXITSTATUS(status));
}
else if(pid==pids[1]){
printf("child process 1 exit with status %d\n",WEXITSTATUS(status));
}
}
return 0;
}
有办法吗?没有。您只能对您创建的进程执行
wait()
。我认为您需要实现某种机制,让父进程等待,然后通过管道或其他方式将退出代码传递给它的另一个子进程。
child process 0 exit with status 5
child process 1 exit with status 0