From b072c40137a80026f54d9bec99686d95e888bd5b Mon Sep 17 00:00:00 2001 From: Santi Date: Fri, 29 Sep 2023 18:39:11 +0200 Subject: [PATCH] Commit fork --- proceso34 | Bin 0 -> 16256 bytes proceso34.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 proceso34 create mode 100644 proceso34.c diff --git a/proceso34 b/proceso34 new file mode 100755 index 0000000000000000000000000000000000000000..2aa505ea8e46659d86f90837372225d84548c2a9 GIT binary patch literal 16256 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 oIUc_M()Gcy`#^O#uuWE? +#include +#include +#include +#include +void main(void) { + pid_t pid, Hijo_pid, pid2, Hijo2_pid, id_actual; + pid = fork(); // Soy el abuelo e intento crear a mi hijo + if (pid == -1) { // Hubo error + printf("Hubo un problema de impotencia al crear el hijo"); + exit(-1); + } + // Si todo va bien y se crea el hijo tenemos que hacer + // que el programa ejecute un código con distinto para cada + // proceso + if (pid == 0) { + // Nos encontramos en el hijo + pid2 = fork(); //soy el hijo y creo al nieto + switch(pid2) { + case -1: //error + printf("No se ha podido crear el proceso nieto en el hijo"); + exit(-1); + break; + case 0: // Estoy en el nieto + printf("\t\tSoy el proceso NIETO %d, Mi padre es = %d \n", + getpid(),getppid()); + break; + default: //proceso padre + Hijo2_pid=wait(NULL); //espero a que termine nieto, que es mi hijo. + printf("\t\tSoy el proceso HIJO %d, Mi padre es = %d \n", + getpid(),getppid()); + printf("\tMi hijo: %d terminó.\n", Hijo2_pid); + } + + } else { + // Nos encontramos en el abuelo + id_actual = wait(NULL); // Espero a que termine mi hijo, que a su vez espera que termine el nieto + printf("Yo soy el abuelo de las dos criaturas anteriores:\n\t"); + printf("Mi PID es %d, el de mi padre (Sistema Operativo) es %d.\n\t", getpid(),getppid()); + printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid); + printf("A mi nieto no lo puedo conocer, solo reconozco a mi generación inmediata\n"); + printf("Para conocer a mi NIETO debería implementar algún sitema de comunicación entre procesos.\n"); + } +exit(0); +} \ No newline at end of file