¿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.