Как использовать 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 дочерних процесса, которые будут взаимодействовать через канал.
Дай мне знать, если увидишь, где моя ошибка.