Signalo () funkcija C ++ nustato nurodyto signalo klaidų tvarkytuvą.
signalas () Prototipas
void (* signalas (int sig, void (* func) (int))) (int);
signal
Funkcija 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