Einführung in die Linux-Alarmfunktion Oben genannter Code: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> int main(int argc, char *argv[]) { Alarm(5); Schlaf (20); printf("Ende!\n"); gebe 0 zurück; } Nach 5 Sekunden Laufzeit sendet der Kernel eine
Natürlich können wir die Signalverarbeitungsfunktion auch manuell wie folgt definieren: #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <signal.h> void sig_alarm(int sig) { printf("sig ist %d, sig_alarm wird aufgerufen\n", sig); } int main(int argc, char *argv[]) { signal(SIGALRM, sig_alarm); // Registriere die Funktion, die dem Alarmsignal entspricht alarm(5); // Nach 5 Sekunden sendet der Kernel ein Alarmsignal an den Prozess und führt die entsprechende Signalregistrierungsfunktion aus sleep(20); printf("Ende!\n"); gebe 0 zurück; } Ergebnis:
Es ist ersichtlich, dass der Kernel ein SIGALRM-Signal an den Anwendungsprozess sendet und die entsprechende Registrierungsfunktion ausführt, anstatt den Prozess zu beenden. Es ist ganz einfach, das ist alles, was ich im Moment dazu zu sagen habe. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Konfigurieren von MySQL und Squel Pro auf dem Mac
>>: vue.config.js Verpackungsoptimierungskonfiguration
Vorwort Als grundlegende Datenstruktur spielen Ar...
Ich habe heute mit der Arbeit an meinem Abschluss...
Inhaltsverzeichnis 1. Einleitung 2. Direkte Wiede...
Ab Elasticsearch 6.8 dürfen kostenlose Benutzer d...
1. Details zur Installationsversion Server: Maria...
Menüleiste Beispiel 1: Code kopieren Der Code lau...
In diesem Artikelbeispiel wird der spezifische Co...
1. Einführung in Docker 1.1 Virtualisierung 1.1.1...
Wenn ein Projekt eine gewisse Komplexität erreich...
Inhaltsverzeichnis Import auf Anfrage: Globaler I...
1. Entpacken Sie die Datei in das aktuelle Verzei...
1. Gehen Sie zur offiziellen Website: D:\mysql-5....
Unter Ubuntu kommt es häufig vor, dass sich das T...
Einführung Es ist nicht nötig, Redis im Detail vo...
1. Clustered-Index Tabellendaten werden in der Re...