01 // Fall : Fehlerbehandlung mit Signalen
02 // Datei: esignal1.cpp
03
04 #include <stdio.h>
05 #include <stdlib.h>
06 #include <signal.h>
07 #include <dos.h> // abhängig vom Betriebssystem
08
09 void mein_signal_handler(int signal_nummer)
10   {
11   fprintf (stderr,
12      "\n\"esignal1\" bekam Signal Nr. %d \n",
13      signal_nummer);
14   fcloseall();     // Alles schließen
15   exit (1);       // Abbruch melden
16   }
18 int main ()
19 {
20 printf ("\n\nTeste die Signal-Behandlung\n\n");
21 signal (SIGINT, mein_signal_handler);
22 for (;;)         // Endlosschleife
23   {
24   sleep(1);      // 1 Sek. warten
25   printf ("Geben Sie CTL-C ein.!\r");
26   }
28 return 0;       // Wird nie erreicht !
29 }
30

Bild 18-3  Asynchrone Signalbehandlung