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