Como usar o Fork () para criar apenas dois processos filho?
Estou começando a aprender um pouco de C e, enquanto estudo o garfo, espero que as funções cheguem a uma saída inesperada. Pelo menos para mim.
Existe alguma maneira de criar apenas dois processos filho do pai?
Aqui meu código:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main ()
{
/* Create the pipe */
int fd [2];
pipe(fd);
pid_t pid;
pid_t pidb;
pid = fork ();
pidb = fork ();
if (pid < 0)
{
printf ("Fork Failed\n");
return -1;
}
else if (pid == 0)
{
//printf("I'm the child\n");
}
else
{
//printf("I'm the parent\n");
}
printf("I'm pid %d\n",getpid());
return 0;
}
E aqui está minha saída:
I'm pid 6763
I'm pid 6765
I'm pid 6764
I'm pid 6766
Por favor, ignore a parte do tubo, eu não cheguei tão longe ainda. Eu só estou tentando criar apenas 2 processos filho, então eu espero que 3 "eu sou pid ..." saídas apenas 1 para o pai que vou fazer esperar e 2 processos filho que se comunicam através de um pipe.
Deixe-me saber se você ver onde está o meu erro.