Seitenleiste

Wiki

Community

Funktionen

Definitionen

Datentypen

raise()

raise() ist definiert in der 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 <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

Beispiel

#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.

siehe auch