Funktionen signal () i C ++ ställer in felhanteraren för den angivna signalen.
signal () Prototyp
void (* signal (int sig, void (* func) (int))) (int);
Den signal
funktionen definierar en metod för att hantera signalen. Signalhanteraren kan ställas in så att en av följande åtgärder utförs:
- Standardhantering av signal.
- Ignorera signalen.
- Användardefinierad funktion kallas för att hantera signalen.
Det definieras i rubrikfil "> rubrikfil.
signal () Parametrar
- sig: Signalen som ska hanteras av signalhanteraren. Det kan ta ett av följande värden:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- hanterare: Signalhanteraren som hanterar signalen. Det kan vara något av följande:
- SIG_DFL: Standardhantering.
- SIG_IGN: Ignorera signalen.
- Pekare till en funktion: Användardefinierad funktion för att hantera signalen. Funktionens signatur måste motsvara följande:
void fun (int sig);
signal () Returvärde
Vid framgång returnerar den tidigare signalhanteraren och vid fel returneras SIG_ERR.
Exempel: Hur signal () fungerar
#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ör programmet blir resultatet:
Signal hanteras