¿Cómo usar Fork () para crear solo 2 procesos secundarios?

Estoy empezando a aprender algo de C y mientras estudiaba la bifurcación, las funciones de espera llegaban a un resultado inesperado. Al menos para mi.

¿Hay alguna forma de crear solo 2 procesos secundarios desde el padre?

Aquí mi 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;
}

Y aquí está mi salida:

I'm pid 6763
I'm pid 6765
I'm pid 6764
I'm pid 6766

Por favor, ignora la parte de la tubería, todavía no he llegado tan lejos. Solo trato de crear solo 2 procesos secundarios, por lo que espero que 3 "I'm pid ..." produzcan solo 1 para el padre, que haré en espera y 2 procesos secundarios que se comunicarán a través de una canalización.

Déjame saber si ves dónde está mi error.

Respuestas a la pregunta(5)

Su respuesta a la pregunta