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 signal
Funktion 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