C ++ signal () - C ++ Standardbibliotek

Funktionen signal () i C ++ ställer in felhanteraren för den angivna signalen.

signal () Prototyp

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

Den signalfunktionen 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

Intressanta artiklar...