====== raise() ======
raise() ist definiert in der ''[[start|signal]]'', die in C über ''signal.h'', bzw. in C++ über ''csignal'' eingebunden wird.
===== Funktion =====
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 );
===== Signatur =====
#include
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 [[c:lib:stdlib:abort|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 |
===== Beispiel =====
#include
#include
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.
===== siehe auch =====
[[start|signal-Library]]: [[signal|signal()]]