Signal

Publicado por Andre Luiz da Silva 02/05/2004

[ Hits: 7.385 ]

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

Determinando a posicão de ocorrencia de uma string em outra

Fila dinâmica em C

Sintetizador sonoro que toca redez vouz 4

Retornar o montante de um capital aplicado a juros compostos

Contagem de elementos de um array


  

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