Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2009, 10:43
GagleKas
 
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años, 1 mes
Puntos: 0
De acuerdo signal: SIGALRM

Holas.

La pregunta es sencilla, a ver si alguien me lo confirma.

Supongamos que quiero hacer un contador un poco especial. Es un contador que inicialmente vale 0 y que cada vez que se recibe un signal SIGALRM incrementa en 1 el valor y lo pinta por pantalla.

La pregunta es: Es obligatorio tener como variable global el contador o hay alguna otra solucion sin usar variables globales?

Este codigo implementa lo que he dicho pero usando una variable global.

Código C:
Ver original
  1. #include <signal.h>
  2. #include <sys/time.h>
  3. #include <stdio.h>
  4.  
  5. int i = 0;
  6.  
  7. void intSIGALRM (){
  8.         i++;
  9.         printf ("%d\n", i);
  10.         signal (SIGALRM, intSIGALRM);
  11.         alarm (1);
  12. }
  13.  
  14. int main (){
  15.         signal (SIGALRM, intSIGALRM);
  16.         alarm (1);
  17.         while (1);
  18.  
  19.         return 0;
  20. }

Gracias.