C ++ signal () - C ++ Standardbibliothek

Die signal () - Funktion in C ++ legt den Fehlerhandler für das angegebene Signal fest.

signal () Prototyp

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

Die signalFunktion definiert eine Methode zur Behandlung des Signals. Der Signalhandler kann so eingestellt werden, dass eine der folgenden Aktionen ausgeführt wird:

  • Standardbehandlung des Signals.
  • Ignoriere das Signal.
  • Eine benutzerdefinierte Funktion wird aufgerufen, um das Signal zu verarbeiten.

Es ist in der Header-Datei "> Header-Datei definiert.

signal () Parameter

  • sig: Das vom Signalhandler zu verarbeitende Signal. Es kann einen der folgenden Werte annehmen:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • ZEICHEN
    • SIGSEGV
    • SIGTERM
  • Handler: Der Signalhandler, der das Signal verarbeitet. Dies kann eine der folgenden sein:
    • SIG_DFL: Standardbehandlung.
    • SIG_IGN: Ignoriert das Signal.
    • Zeiger auf eine Funktion: Benutzerdefinierte Funktion zur Verarbeitung des Signals. Die Signatur der Funktion muss den folgenden Angaben entsprechen:
       leerer Spaß (int sig);

signal () Rückgabewert

Bei Erfolg wird der vorherige Signalhandler zurückgegeben, und bei einem Fehler wird SIG_ERR zurückgegeben.

Beispiel: Funktionsweise der Funktion signal ()

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

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Signal wird behandelt

Interessante Beiträge...