Signal

Publicado por Andre Luiz da Silva 02/05/2004

[ Hits: 7.032 ]

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

MeikeNeime - Programa gerador de nomes aleatórios

Strspn

Conta letras

Simulador do Sorteio da Mega Sena

Funções matemáticas


  

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