Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2012, 14:24
Mar2012
 
Fecha de Ingreso: diciembre-2012
Mensajes: 9
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Interpretación código en lenguaje C

Dado el siguiente código y suponiendo que todas las llamadas a sistema se realizan sin problemas (no provocan ningún error), me podrías ayudar a interpretar paso a paso la ejecución del código?
Muchas gracias.
Mar.


#include <stdio.h>
#include <signal.h>
#include <unistd.h>
int n, seguir;
void rut1() {printf(“Señal 1\n”); seguir=0;
signal (SIGUSR1, rut1);}
void rut2() {printf(“Señal 2\n”); seguir=1; n++;
signal (SIGUSR2, rut2);}
void main()
{
int p1[2],i;
seguir = 1;
n = 0;
pipe(p1);
signal (SIGUSR1, rut1);
signal (SIGUSR2, rut2);
switch(fork()) {
case 0: close(1);
dup(p1[1]);
close(p1[0]); close (p1[1]);
while(seguir);
pause();
write(1, &n, sizeof(int));
break;
default: close(0);
dup(p1[0]);
close(p1[0]); close (p1[1]);
read(0, &i, sizeof(int));
printf(“He recibido un %d”, i);
while(seguir);
}
printf(“El valor de n es %d”, n);
}