signal.h - Um exemplo

Publicado por Jose Maria Silveira Neto 25/05/2004

[ Hits: 13.957 ]

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

Imprimindo uma arvore graficamente

Algoritmo de Fatoração de Fermat (FFA) em C

Calculando PI usando série de Leibniz

Fibbonacci com Memoization - O(n)

É 32 ou 64 bits?


  

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