C ++ -signaali () - C ++ -kirjasto

C ++: n signaali () -toiminto asettaa virhekäsittelijän määritetylle signaalille.

signaali () Prototyyppi

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

signalToiminto 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

Mielenkiintoisia artikkeleita...