我有这样的代码:检查两个进程的退出码
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));
我新的并行程序,所以我不知道这是一个正确的解决方案。在父进程到达循环之前,其中一个子进程没有退出的可能性,因此它不会得到退出代码?
你的代码有什么问题?当你运行它会发生什么? –