【发布时间】:2015-04-17 14:30:12
【问题描述】:
我有这个代码:
pid_t pid1 = fork();
if (pid1 == 0)
{
//do some stuff
if (something)
exit(0);
else
exit(1);
}
else if (pid1 == -1)
printf("error\n");
pid_t pid2 = fork();
if (pid2 == 0)
{
//do some stuff
if (something)
exit(0);
else
exit(1);
}
else if (pid2 == -1)
printf("error\n");
//here I want to check both exit codes
子进程将并行运行。我需要检查两个退出代码是1 还是0。我想我可以使用这样的东西:
pid_t pid;
int status;
while( (pid = wait(&status)) > 0)
printf("%d exit code: %d\n", pid, WEXITSTATUS(status));
我是并行编程的新手,所以我不确定这是否是正确的解决方案。是不是有一个子进程在父进程到达循环之前退出的可能性,所以它不会得到退出代码?
【问题讨论】:
-
您的代码有什么问题?运行时会发生什么?