signal.h - Um exemplo

Publicado por Jose Maria Silveira Neto 25/05/2004

[ Hits: 12.505 ]

Download sinal.c




Um pequeno uso para a Signal.h no C.
Com esta biblioteca, você pode manusear sinais e manter um comunicação entre aplicações.
Nesse exemplo usaremos o sinal USR.
Depois de compilar e executar o programa num terminal, abra outro terminal e de um ps -xa para ver a lista de processos. Descubra o PID do seu processo (número que identifica o seu processo, fica do lado do nome do executavel no ps -xa). Escreva
$kill -USR1 <pid do processo>
Você pode fazer uma outra funcao para usar o USR2.
Boa sorte.

  



Esconder código-fonte

/*Inicio do programa*/
#include<stdio.h>
#include<signal.h>
void handler_USR1(int sig)
{
   psignal(sig,"USR1 Recebido\n");
}

int main(void)
{
   printf("Esperando sinal do sistema\n");
   signal(SIGUSR1,handler_USR1);
   while(1)
   {
      pause(1);
   }
}
/* Fim do Programa*/

Compile e execute o programa, depois em um outro terminal digite:
$ps -xa
ai procure pelo PID seu processo. O pid eh um numeruzinho que na mesma linha do nome do binarios do seu programa quando você dá um ps -xa .
 Ai digite, no lugar de <pid> coloque o pid do processo (sem os <>) 
$kill -USR1 <pid>

Deve aparecer uma mensagenzinha do seu programa avisando que ele recebeu a mensagem.
Nos bons programas o SIGUSR1 é usado para avisar o programa que há novas configurações do sistema. Ai ele reabre os arquivos de configuração. Legal, ai não precisa reiniciar o programa para ele recarregar as configurações!
Para encerrar os programa de um 
$kill -KILL <pid> 
ou somente 
$kill <pid>

Valeu.

Scripts recomendados

Cálculo de logaritmo de um número por Série de Taylor em C

Jogo Micro Breakout

Fibbonacci com Memoization - O(n)

Sistema básico de cadastro usando Listas Encadeadas

Registro


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts