Sinal C ++ () - Biblioteca Padrão C ++

A função signal () em C ++ define o manipulador de erros para o sinal especificado.

sinal () Protótipo

 void (* sinal (int sig, void (* func) (int))) (int);

A signalfunção define um método para lidar com o sinal. O manipulador de sinal pode ser definido para que uma das seguintes ações seja realizada:

  • Tratamento padrão do sinal.
  • Ignore o sinal.
  • A função definida pelo usuário é chamada para tratar o sinal.

É definido no arquivo de cabeçalho "> arquivo de cabeçalho.

sinal () Parâmetros

  • sig: O sinal a ser tratado pelo manipulador de sinal. Pode assumir um dos seguintes valores:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • manipulador: o manipulador de sinal que trata o sinal. Pode ser um dos seguintes:
    • SIG_DFL: Tratamento padrão.
    • SIG_IGN: Ignora o sinal.
    • Ponteiro para uma função: Função definida pelo usuário para lidar com o sinal. A assinatura da função deve ser equivalente ao seguinte:
       void fun (int sig);

sinal () Valor de retorno

Em caso de sucesso, ele retorna o manipulador de sinal anterior e em caso de falha SIG_ERR é retornado.

Exemplo: como funciona a função signal ()

 #include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )

Quando você executa o programa, a saída será:

 O sinal é tratado

Artigos interessantes...