код:
int main(void)
{
printf("pid: %d\n", getpid());
pid = fork();
if (pid < 0) {
fprintf(stderr, "Fork Failed!");
exit(-1);
} else if (pid == 0) {
execv("sum", argv);
} else {
printf(" pid: %d\n", pid);
wait(NULL);
}
}
Выход:
pid: 280
pid: 281
Вопрос:
Почему два пид разные. Я думал, что они должны быть одинаковыми, потому что родительский элемент - это то, что выполняется в блоке else
, а родительский - это то, что выполняется перед разветвлением, поэтому они должны быть одинаковыми, нет?