La función signal () en C ++ establece el controlador de errores para la señal especificada.
señal () Prototipo
void (* señal (int sig, void (* func) (int))) (int);
La signal
función define un método para manejar la señal. El manejador de señales se puede configurar para que se realice una de las siguientes acciones:
- Manejo predeterminado de la señal.
- Ignora la señal.
- Se llama a la función definida por el usuario para manejar la señal.
Se define en el archivo de encabezado "> archivo de encabezado.
Parámetros de señal ()
- sig: La señal que debe manejar el manejador de señales. Puede tomar uno de los siguientes valores:
- SIGABRT
- SIGFPE
- SIGILL
- SIGNO
- SIGSEGV
- SIGTERM
- manejador: El manejador de señales que maneja la señal. Puede ser uno de los siguientes:
- SIG_DFL: Manejo por defecto.
- SIG_IGN: Ignora la señal.
- Puntero a una función: función definida por el usuario para manejar la señal. La firma de la función debe ser equivalente a lo siguiente:
diversión vacía (int sig);
señal () Valor de retorno
En caso de éxito, devuelve el manejador de señales anterior y en caso de error se devuelve SIG_ERR.
Ejemplo: cómo funciona la función 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; )
Cuando ejecute el programa, la salida será:
Se maneja la señal