Yo hace 2 años que no veo esto, supongo que sabes lo rayante que es con que imaginate de lo qeu te acuerdas después de tanto tiempo sin verlo

. Te intento orientar de todos modos.
Suponte este fragmento de código:
//Antes del fork
fork();
//Después del fork
La parte detrás del fork es ejecutada tanto por el padre como por el hijo, "a la vez", de forma que si se tiene esto:
//Antes del fork
fork();
fork();
//Después del fork
El proceso padre crea un hijo, luego crea otro hijo y el el primer hijo crea otro hijo. ¿Que tienes que hacer para qeu el padre sea el único que crea los hijo?: Asegurarte que es el padre quien ejecuta el codigo (como quieras que mires su PID, no me acuerdo).
//Antes del fork
int P =
fork();
if( )
. fork();
//Después del fork
De manera que ahora el padre crea 2 hijos (y los hijos ninguno).
Para el proceso padre cree N hijos, basta con seguir la misma filosofía, con un bucle:
//Antes del fork
int P =
fork();
for(i = 0; i. if( )
. fork();
Espero que te sirva

.