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.

questionAnswers(5)

yourAnswerToTheQuestion