C ++ signal () - C ++ Standard Library

De functie signal () in C ++ stelt de fouthandler in voor het opgegeven signaal.

signal () Prototype

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

De signalfunctie definieert een methode om het signaal te verwerken. De signaalverwerker kan zo worden ingesteld dat een van de volgende acties wordt uitgevoerd:

  • Standaardafhandeling van signaal.
  • Negeer het signaal.
  • Door de gebruiker gedefinieerde functie wordt aangeroepen om het signaal af te handelen.

Het wordt gedefinieerd in header-bestand "> header-bestand.

signal () Parameters

  • sig: het signaal dat door de signaalverwerker moet worden afgehandeld. Het kan een van de volgende waarden aannemen:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: de signaalhandler die het signaal afhandelt. Het kan een van de volgende zijn:
    • SIG_DFL: standaardafhandeling.
    • SIG_IGN: Negeer het signaal.
    • Pointer naar een functie: door de gebruiker gedefinieerde functie om het signaal te verwerken. De handtekening van de functie moet gelijk zijn aan het volgende:
       leegte plezier (int sig);

signal () Retourwaarde

Bij succes retourneert het de vorige signaalhandler en bij een fout wordt SIG_ERR geretourneerd.

Voorbeeld: hoe signal () -functie werkt

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

Wanneer u het programma uitvoert, is de uitvoer:

 Signaal wordt afgehandeld

Interessante artikelen...