У меня есть следующий код:
#include <stdio.h>
main(int argc, char *argv[])
{
int n,st;
n = atoi(argv[1]);
while(n*fork()) {
printf("%d %d\n",getpid(), getppid());
n--;
printf("%d\n", wait(&st));
printf("------\n");
}
}
Я выполняю этот код и получаю следующие результаты:
bash-3.2$ ./test 3
10218 9948
10219
------
10218 9948
10220
------
10218 9948
10221
------
вот мои мысли:
Родитель создает ребенка:
10218 9948
Но после этого я не понимаю, почему printf("%d\n", wait(&st));
возвращает этот идентификатор: 10219 .
wait()
должен возвращать идентификатор ребенка, который завершается.
Кто-нибудь может помочь?!