Beispielerklärung der Alarmfunktion in Linux

Beispielerklärung der Alarmfunktion in Linux

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 SIGALRM -Nachricht an den Prozess und der Prozess wird beendet. Das Ergebnis des obigen Programms ist also:

Wecker

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:

sig ist 14, sig_alarm wird aufgerufen
Ende!

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:
  • PHP führt 6 Linux-Befehlsfunktionscodebeispiele aus
  • Detaillierte Erklärung zur Verwendung der Stat-Funktion und des Stat-Befehls in Linux
  • So erhalten Sie die aktuelle Zeit mit der Funktion time(NULL) und localtime() in Linux
  • So fügen Sie einer Python-Funktion unter Linux/Mac ein Timeout hinzu
  • Linux-Unlink-Funktion und wie man Dateien löscht
  • Detaillierte Erklärung zur Verwendung der Linux-lseek-Funktion
  • Eine kurze Analyse des Funktionsaufrufprozesses unter der ARM-Architektur

<<:  Konfigurieren von MySQL und Squel Pro auf dem Mac

>>:  vue.config.js Verpackungsoptimierungskonfiguration

Artikel empfehlen

Detaillierte Erklärung der node.js-Installation und HbuilderX-Konfiguration

Tutorial zur npm-Installation: 1. Laden Sie das N...

Zentrieren des Formulars in HTML

Ich bin einmal auf eine Aufgabe gestoßen, bei der...

Tomcat verwendet Thread-Pool zur Verarbeitung gleichzeitiger Remote-Anfragen

Wenn wir verstehen, wie Tomcat gleichzeitige Anfr...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.20

Tutorial zum Herunterladen und Installieren von M...

Diskussion über die Möglichkeit zum Öffnen von Website-Hyperlinks

Ein neues Fenster wird geöffnet. Vorteile: Wenn d...

Umfassendes Verständnis von Zeilenhöhe und vertikaler Ausrichtung

Vorherige Wörter Zeilenhöhe, Schriftgröße und vert...

Methode zur Wiederherstellung von Betriebs- und Wartungsdaten der MySQL-Datenbank

In den vorherigen drei Artikeln wurden gängige Si...

Beispielanalyse der Verwendung des neuen JSON-Feldtyps in MySQL 5.7

Dieser Artikel veranschaulicht anhand eines Beisp...

Untersuchung der MySQL-Paging-Leistung

Mehrere gängige Paging-Methoden: 1. Rolltreppenme...

So stellen Sie mit Navicat eine Remoteverbindung zur Cloud-Server-Datenbank her

Es ist sehr praktisch, eine Verbindung zu einer R...

Der Unterschied zwischen Name und Wert im Eingabe-Tag

Typ ist das Steuerelement, das für die Eingabe und...