Как использовать Fork () для создания только 2 дочерних процессов?

Я начинаю изучать C и, изучая форк, жду функции, которые я получил неожиданный вывод. По крайней мере для меня

Есть ли способ создать только 2 дочерних процесса из родительского?

Вот мой код:

#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;
}

И вот мой вывод:

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

Пожалуйста, не обращай внимания на часть трубы, я еще не зашел так далеко. Я просто пытаюсь создать только 2 дочерних процесса, поэтому я ожидаю, что 3 "I'm pid ..." выводит только 1 для родительского процесса, который я заставлю ждать, и 2 дочерних процесса, которые будут взаимодействовать через канал.

Дай мне знать, если увидишь, где моя ошибка.

Ответы на вопрос(5)

Ваш ответ на вопрос