Funktionen signal () i C ++ indstiller fejlbehandleren til det angivne signal.
signal () Prototype
ugyldigt (* signal (int sig, ugyldigt (* func) (int))) (int);
Den signal
Funktionen definerer en fremgangsmåde til at håndtere signalet. Signalhåndtereren kan indstilles, så en af følgende handlinger udføres:
- Standardhåndtering af signal.
- Ignorer signalet.
- Brugerdefineret funktion kaldes til at håndtere signalet.
Det er defineret i header-fil "> header-fil.
signal () Parametre
- sig: Signalet, der skal håndteres af signalhandleren. Det kan tage en af følgende værdier:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- handler: Signalhandleren, der håndterer signalet. Det kan være et af følgende:
- SIG_DFL: Standardhåndtering.
- SIG_IGN: Ignorer signalet.
- Markør til en funktion: Brugerdefineret funktion til at håndtere signalet. Funktionens underskrift skal svare til følgende:
ugyldig sjov (int sig);
signal () Returværdi
Efter succes returnerer den tidligere signalbehandler, og ved fejl returneres SIG_ERR.
Eksempel: Hvordan signal () fungerer
#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; )
Når du kører programmet, vil output være:
Signal håndteres