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...