Função da biblioteca C - aumentar ()
Descrição
A função da biblioteca C int raise(int sig) causa sinal siga ser gerado. osig argumento é compatível com as macros SIG.
Declaração
A seguir está a declaração da função signal ().
int raise(int sig)
Parâmetros
sig- Este é o número do sinal a enviar. A seguir estão algumas constantes de sinal padrão importantes -
Sr. Não. | Macro e sinal |
---|---|
1 | SIGABRT (Abortar sinal) Terminação anormal, como é iniciada pela função de abortar. |
2 | SIGFPE (Exceção de ponto flutuante de sinal) Operação aritmética errônea, como divisão por zero ou uma operação que resulta em estouro (não necessariamente com uma operação de ponto flutuante). |
3 | SIGILL (Instrução ilegal do sinal) Imagem de função inválida, como uma instrução ilegal. Isso geralmente ocorre devido a uma corrupção no código ou a uma tentativa de executar dados. |
4 | SIGINT (Interrupção de sinal) Sinal de atenção interativo. Geralmente gerado pelo usuário do aplicativo. |
5 | SIGSEGV (Violação de segmentação de sinal) Acesso inválido ao armazenamento - Quando um programa tenta ler ou gravar fora da memória, ele está alocado para ele. |
6 | SIGTERM (Terminar sinal) Solicitação de rescisão enviada ao programa. |
Valor de retorno
Esta função retorna zero se for bem-sucedida e diferente de zero caso contrário.
Exemplo
O exemplo a seguir mostra o uso da função signal ().
#include <signal.h>
#include <stdio.h>
void signal_catchfunc(int);
int main () {
int ret;
ret = signal(SIGINT, signal_catchfunc);
if( ret == SIG_ERR) {
printf("Error: unable to set signal handler.\n");
exit(0);
}
printf("Going to raise a signal\n");
ret = raise(SIGINT);
if( ret !=0 ) {
printf("Error: unable to raise SIGINT signal.\n");
exit(0);
}
printf("Exiting...\n");
return(0);
}
void signal_catchfunc(int signal) {
printf("!! signal caught !!\n");
}
Vamos compilar e executar o programa acima para produzir o seguinte resultado -
Going to raise a signal
!! signal caught !!
Exiting...