Señal C ++ () - Biblioteca estándar de C ++

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 signalfunció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

Articulos interesantes...