procesos/eje1.c

32 lines
864 B
C

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
void main(void) {
pid_t p_hijo, p_padre;
int a;
a = 6;
printf("Mi PID es %d y el del sistema %d\n", getpid(), getppid());
sleep(1);
p_hijo = fork();
switch(p_hijo) {
case -1: //error
printf("No se ha podido crear el proceso nieto en el hijo");
exit(-1);
break;
case 0: // Estoy en el hijo
a -= 5;
printf("Soy el proceso HIJO %d, Mi padre es = %d \n",
getpid(),getppid());
printf("La variable hijo vale %d", a);
sleep(1);
break;
default: //proceso padre
a += 5;
printf("Soy el proceso PADRE %d, Mi padre es = %d \n",
getpid(),getppid());
printf("La variable padre vale %d", a);
}
}