Segnale C ++ () - Libreria standard C ++

La funzione signal () in C ++ imposta il gestore degli errori per il segnale specificato.

signal () Prototipo

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

La signalfunzione definisce un metodo per gestire il segnale. Il gestore del segnale può essere impostato in modo che venga eseguita una delle seguenti azioni:

  • Gestione predefinita del segnale.
  • Ignora il segnale.
  • La funzione definita dall'utente viene chiamata per gestire il segnale.

È definito nel file di intestazione "> file di intestazione.

signal () Parametri

  • sig: il segnale da gestire dal gestore del segnale. Può assumere uno dei seguenti valori:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: il gestore del segnale che gestisce il segnale. Può essere uno dei seguenti:
    • SIG_DFL: gestione predefinita.
    • SIG_IGN: ignora il segnale.
    • Puntatore a una funzione: funzione definita dall'utente per gestire il segnale. La firma della funzione deve essere equivalente alla seguente:
       void fun (int sig);

signal () Valore di ritorno

In caso di successo, restituisce il gestore del segnale precedente e in caso di errore viene restituito SIG_ERR.

Esempio: come funziona la funzione 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 esegui il programma, l'output sarà:

 Il segnale è gestito

Articoli interessanti...