Control-C-Signale in C abfangen
Im Bereich der Programmierung ist es oft notwendig, Tastaturereignisse zu erfassen, wie zum Beispiel die allgegenwärtige Strg-Taste C, was normalerweise die Programmbeendigung auslöst. Dieser Artikel befasst sich mit diesem speziellen Bedarf: Wie fängt man Strg-C-Signale in C ab? Ereignisse: Signal und Sigaktion.
Verwenden Sigaction
Die Sigaction-Funktion bietet im Vergleich zu Signal einen zuverlässigeren Ansatz, da sie eine bessere Kontrolle und Portabilität über verschiedene Implementierungen hinweg bietet. Um Sigaction zu verwenden, folgen Sie diesen Schritten:
Erforderliche Header einschließen:
#include <signal.h> #include <stdlib.h> #include <stdio.h> #include <unistd.h>
void my_handler(int s){ printf("Caught signal %d\n",s); exit(1); }
struct sigaction sigIntHandler; sigIntHandler.sa_handler = my_handler; sigemptyset(&sigIntHandler.sa_mask); sigIntHandler.sa_flags = 0; sigaction(SIGINT, &sigIntHandler, NULL);
pause();
Wenn Sie dieses Programm ausführen und Strg C drücken, wird „Signal 2 gefangen“ gedruckt und beendet anmutig.
Das obige ist der detaillierte Inhalt vonWie kann ich Strg-C-Signale in C abfangen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!