Witam,
napisałem taki oto program:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(){
pid_t one, two, three, four;
int fd[2];
pipe(fd);
one=fork();
if(one==0)
{
//potomek1
printf("Pid potomka1: %d\n", getpid());
printf("Pid rodzica potomka1: %d\n", getppid());
}
else
{
//rodzic
two=fork();
if(two==0)
{
//potomek2
printf("Pid potomka2: %d\n", getpid());
printf("Pid rodzica potomka2: %d\n", getppid());
}
else
{
//rodzic
three=fork();
if(three==0)
{
//potomek3
printf("Pid potomka3: %d\n", getpid());
printf("Pid rodzica potomka3: %d\n", getppid());
}
else
{
//rodzic
four=fork();
if(four==0)
{
//potomek4
printf("Pid potomka4: %d\n", getpid());
printf("Pid rodzica potomka4: %d\n", getppid());
}
else
{
//rodzic
}
}
}
}
return 0;
}
Może ktoś wytłumaczyć dlaczego tworzą się dwa rodzice, z których jeden posiada jednego potomka a drugi posiada trzech potomków? Według mojego rozumowania powinien być jeden rodzic z czterema potomkami.