Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda en código lenguaje C

Estas en el tema de Duda en código lenguaje C en el foro de C/C++ en Foros del Web. Dado el siguiente código: #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”); ...
  #1 (permalink)  
Antiguo 25/12/2012, 06:36
 
Fecha de Ingreso: diciembre-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Duda en código lenguaje C

Dado el siguiente código:
#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);
}

No consigo sacar qué secuencia de señales debe recibir el proceso hijo para llegar a hacer una escritura. Alguna idea?
Muchas gracias de antemano.
Mar.
  #2 (permalink)  
Antiguo 25/12/2012, 13:22
 
Fecha de Ingreso: diciembre-2012
Mensajes: 9
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda en código lenguaje C

Rectifico la consulta. He encontrado unos apuntes de señales que me podrían ayudar a sacar adelante el tema. Voy a ponerme con ello. Eso sí, tengo dudas con la interpretación del código. ¿Me podríais ayudar a interpretar paso a paso la ejecución del código? (suponiendo por ejemplo que todas las llamadas a sistema se realizaran sin problemas.
Gracias de antemano.
Un saludo.
Mar.

Etiquetas: int, lenguaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:58.