Signal

Publicado por Andre Luiz da Silva 02/05/2004

[ Hits: 7.028 ]

Homepage: http://localhost

Download signal3.c




Um pequeno fonte demonstrando algumas coisas interessantes usando signals.

  



Esconder código-fonte

/* Author: Andre Luiz da Silva
 * Date  : 21/04/2004 
 */

#include <stdio.h>  /* standart C functions */
#include <signal.h> /* signal() */
#include <unistd.h> /* sleep() */

#define DEFAULT_SPEED 5

static unsigned int speed = DEFAULT_SPEED;
int count = 0;

void aumenta_speed (int signal_num)
{
   ++speed;
   signal (SIGUSR1, aumenta_speed);
   /* Associa novamente o tratador de signal, pq em sistemas Linux, quando 
    * um programa recebe um signal ele chama o tratador para aquele signal e
    * automaticamente associa aquele signal para o tratador default */
}

void diminui_speed (int signal_num)
{
   --speed;
   signal (SIGUSR2, diminui_speed);
}

void zera_contador (int signal_num)
{
   count = 0;
   signal (SIGHUP, zera_contador);
}

void default_speed (int signal_num)
{
   speed = DEFAULT_SPEED;
   signal (SIGTERM, default_speed);
}


int main (int argc, char **argv)
{
   signal (SIGUSR1, aumenta_speed);
   signal (SIGUSR2, diminui_speed);
   signal (SIGHUP, zera_contador);
   signal (SIGTERM, default_speed);
   for (; ;++count)
   {
      sleep (speed);
      printf ("%d \n", count);
   }
   return 0;
}
   

Scripts recomendados

Jogo Tetris em C - parte 2

programa para solucionar problemas com triangulos

Grafos

Obtendo o tempo em C

parse_args


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts