/*
 * Entendendo funcionamento de sinais em ambiente Linux/Unix.
 *
 * Origem:  http://www.jorgepereira.com.br/
 * Autores: Jorge Pereira <jorge@jorgepereira.com.br>
 *          Fabiano Arruda <fabiano.arruda@hotmail.com>
 *
 */
 
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

#define TRUE 1

void myHandlerSIGINT(int sig)
{
     printf("recebeu o sinal de interrupção do OS...\n");
	 printf("SIGNAL ID: %i\n", sig);
     exit(1); //execução interrompida.
}

int main(int argc, char** argv)
{
    printf("adcionando um handler para o sinal SIGINT\n");
    signal(SIGINT, myHandlerSIGINT);
    printf("Esperando signal SIGINT\n");
    while (TRUE)
    {
    	sleep(1);
    }
}
