#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int rc = fork();
int pid = getpid();
printf("from 1: %d\n", pid);
if (rc == 0) {
printf("from 2: %d\n", pid);
rc = fork();
if (rc == 0) {
printf("from 3: %d\n", pid);
} else {
printf("from 4: %d\n", pid);
}
} else {
printf("from 5: %d\n", pid);
}
}
при запуске этого кода я получаю следующий результат:
from 1: 5890
from 5: 5890
from 1: 5891
from 2: 5891
from 4: 5891
from 3: 5891
1 - почему 1
выполняется дважды?
2 - почему я получаю два значения для переменной pid
?