C ++: n signaali () -toiminto asettaa virhekäsittelijän määritetylle signaalille.
signaali () Prototyyppi
void (* signaali (int sig, void (* func) (int))) (int);
signal
Toiminto määrittelee menetelmän käsitellä signaalin. Signaalinkäsittelijä voidaan asettaa siten, että suoritetaan yksi seuraavista toimista:
- Signaalin oletuskäsittely.
- Ohita signaali.
- Käyttäjän määrittelemää toimintoa kutsutaan käsittelemään signaalia.
Se määritetään otsikkotiedostossa "> header file.
signaali () Parametrit
- sig: Signaalinkäsittelijän käsittelemä signaali. Se voi ottaa jonkin seuraavista arvoista:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- käsittelijä: Signaalin käsittelijä, joka käsittelee signaalin. Se voi olla yksi seuraavista:
- SIG_DFL: Oletuskäsittely.
- SIG_IGN: Ohita signaali.
- Toiminnon osoitin: Käyttäjän määrittämä toiminto signaalin käsittelemiseksi. Funktion allekirjoituksen on vastattava seuraavaa:
mitätön hauska (int sig);
signaali () Palautusarvo
Menestyksessä se palauttaa edellisen signaalinkäsittelijän ja epäonnistumisen yhteydessä SIG_ERR palautetaan.
Esimerkki: Kuinka signaali () -toiminto toimii
#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; )
Kun suoritat ohjelmaa, tulos on:
Signaalia käsitellään