raise() ist definiert in der signal, die in C über signal.h, bzw. in C++ über csignal eingebunden wird.
raise() springt an ein Ziel, das über die übergebene Umgebungs-Struktur definiert ist.
Dabei wird ein Makro übergeben, das die Art des Signals angibt:
raise( SIGTERM );
#include <signal.h> int raise( signal sig );
sig: Das auszulösende Signal
Rückgabewert: 0 bei Erfolg, ansonsten ein von 0 verschiedener Wert
Für sig stehen dabei folgende Makros zur Verfügung:
| Name | Signal | Bedeutung | 
|---|---|---|
| SIGABRT | Abort | Wird durch abort() ausgelöst | 
| SIGFPE | Floating-Point Exception | Ungültigen Berechnung (z.B. Division durch 0) | 
| SIGILL | Illegal Instruction | Fehler bei der Programmausführung | 
| SIGINT | Interrupt | Wird ausgelöst, wenn das Programm gestoppt werden soll (z.B. durch Strg+C) | 
| SIGSEGV | Segmentation Violation | Speicherzugriffsfehler | 
| SIGTERM | Terminate | Programm soll beendet werden | 
#include <stdio.h> #include <signal.h> int main() { printf( "Vor dem Signal\n" ); raise( SIGTERM ); printf( "Nach dem Signal\n" ); return 0; }
Ausgabe:
Vor dem Signal Terminated
Man kann hier deutlich erkennen, dass die Ausführung direkt nach der Auslösung des Signals abgebrochen wird.