De functie signal () in C ++ stelt de fouthandler in voor het opgegeven signaal.
signal () Prototype
void (* signal (int sig, void (* func) (int))) (int);
De signal
functie 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