Signál C ++ () - štandardná knižnica C ++

Funkcia signal () v C ++ nastavuje obslužnú rutinu chýb pre zadaný signál.

signál () prototyp

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

signalFunkcia definuje metódu pre spracovanie signálu. Obsluhu signálu je možné nastaviť tak, aby sa vykonala jedna z nasledujúcich akcií:

  • Predvolené spracovanie signálu.
  • Signál ignorujte.
  • Na spracovanie signálu sa volá užívateľom definovaná funkcia.

Je definované v hlavičkovom súbore.

signal () Parametre

  • sig: Signál spracovávaný obsluhou signálu. Môže mať jednu z nasledujúcich hodnôt:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: Handler signálu, ktorý spracováva signál. Môže to byť jedna z nasledujúcich možností:
    • SIG_DFL: Predvolené spracovanie.
    • SIG_IGN: Ignorujte signál.
    • Ukazovateľ na funkciu: Užívateľom definovaná funkcia na spracovanie signálu. Podpis funkcie musí byť rovnocenný s týmto:
       void fun (int sig);

signal () Návratová hodnota

Pri úspechu vráti predchádzajúci obsluhujúci signál a pri zlyhaní sa vráti SIG_ERR.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 Signál je spracovaný

Zaujímavé články...