C ++ signalas () - C ++ standartinė biblioteka

Signalo () funkcija C ++ nustato nurodyto signalo klaidų tvarkytuvą.

signalas () Prototipas

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

signalFunkcija apibrėžia metodą tvarkyti signalą. Signalo tvarkytuvą galima nustatyti taip, kad būtų atliekamas vienas iš šių veiksmų:

  • Numatytasis signalo tvarkymas.
  • Nepaisykite signalo.
  • Signalo apdorojimui iškviečiama vartotojo apibrėžta funkcija.

Tai apibrėžiama antraštės faile "> header file.

signalas () Parametrai

  • sig: Signalo tvarkytojo valdomas signalas. Tai gali būti viena iš šių verčių:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • ŽENKLAS
    • SIGSEGV
    • SIGTERMAS
  • tvarkytojas: signalo tvarkytojas, kuris tvarko signalą. Tai gali būti vienas iš šių būdų:
    • SIG_DFL: numatytasis valdymas.
    • SIG_IGN: Nepaisykite signalo.
    • Funkcijos žymeklis: vartotojo apibrėžta funkcija signalui valdyti. Funkcijos parašas turi būti lygiavertis:
       tuštuma linksmybės (int sig);

signalas () Grąžinimo vertė

Sėkmingai jis grąžina ankstesnį signalo tvarkytuvą, o sugedus - SIG_ERR.

Pavyzdys: kaip veikia signalo () funkcija

 #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; )

Kai paleisite programą, išvestis bus:

 Signalas tvarkomas

Įdomios straipsniai...