gpt4 book ai didi

子进程可以等待它的兄弟进程并获得其退出状态吗?

转载 作者:行者123 更新时间:2023-12-04 05:15:10 25 4
gpt4 key购买 nike

我试图从子进程中获取其“兄弟”的退出状态,

我试过这样做:

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;
}

但我得到的输出是:
child process 0 exit with status 5
child process 1 exit with status 0

有没有办法做到这一点?

最佳答案

不可以。您只能wait()在您创建的流程上。

关于子进程可以等待它的兄弟进程并获得其退出状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com