У меня есть этот код:Проверка выхода коды двух процессов
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));
Я новичок в программировании параллельно, так что я не уверен, что это правильное решение. Разве не существует возможности выхода одного из дочерних процессов до того, как родительский процесс достигнет цикла, поэтому он не получит код выхода?
И в чем проблема с вашим кодом? Что происходит, когда вы запускаете его? –