signal.h - Um exemplo
Publicado por Jose Maria Silveira Neto 25/05/2004
[ Hits: 14.336 ]
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.
/*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.
[GAME-2] Acerte os rortões nas janelas (jogo com gráficos)
Cálculo de logaritmo de um número por Método de Newton-Raphson em C
Nenhum comentário foi encontrado.
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Como criar um make.conf no Gentoo (para iniciantes)
Como instalar o Open WebUI para Ollama no Gentoo (com systemd)
INSTALAR (e jogar) COUNTER STRIKE 1.6 (install cs 1.6) NO LINUX
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Removendo a trava de versão do Project Brutality para GZDoom/UZDoom
Acelere a compilação no Gentoo com distcc (guia para Systemd)









