signal.h - Um exemplo

Publicado por Jose Maria Silveira Neto 25/05/2004

[ Hits: 13.826 ]

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

torre de hanoi em C

Agenda feita em C usando árvore binária

Jogo Windows Invaders (com gráficos)

Driver ATI que funciona

Agenda Eletronica


  

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