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 signal
funçã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