Semnal C ++ () - Biblioteca standard C ++

Funcția signal () din C ++ setează gestionarul de erori pentru semnalul specificat.

signal () Prototip

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

signalFuncția definește o metodă de a manipula semnalul. Manipulatorul de semnal poate fi setat astfel încât să se efectueze una dintre următoarele acțiuni:

  • Manipulare implicită a semnalului.
  • Ignorați semnalul.
  • Funcția definită de utilizator este apelată pentru a gestiona semnalul.

Este definit în fișierul antet "> fișierul antet.

signal () Parametri

  • sig: Semnalul de gestionat de către gestionarul de semnal. Poate lua una dintre următoarele valori:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: gestionarul semnalului care gestionează semnalul. Poate fi una dintre următoarele:
    • SIG_DFL: Manipulare implicită.
    • SIG_IGN: Ignorați semnalul.
    • Pointer către o funcție: Funcție definită de utilizator pentru a gestiona semnalul. Semnătura funcției trebuie să fie echivalentă cu următoarea:
       void fun (int sig);

signal () Valoare returnată

La succes, acesta returnează gestionarul de semnal anterior și la eșec este returnat SIG_ERR.

Exemplu: Cum funcționează funcția 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; )

Când rulați programul, ieșirea va fi:

 Semnalul este tratat

Articole interesante...