Signal

Publicado por Andre Luiz da Silva 02/05/2004

[ Hits: 7.316 ]

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 da Forca

Ler N números e ver qual é o maior

Contagem de elementos de um array

Comando strncat

Faixa salarial de funcionários


  

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