Я начинаю изучать некоторые 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 "Я pid..." выводит только 1 для родителя, который я буду ждать, и 2 дочерних процесса, которые будут связываться через канал.
Сообщите мне, если вы видите, где моя ошибка.