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

Wie viele gängige Schleifen zur Array-Traversierung in JS kennen Sie?

Vorwort Als grundlegende Datenstruktur spielen Ar...

So importieren Sie SQL-Dateien in Navicat Premium

Ich habe heute mit der Arbeit an meinem Abschluss...

Zusammenfassung verschiedener Methoden zur MySQL-Datenwiederherstellung

Inhaltsverzeichnis 1. Einleitung 2. Direkte Wiede...

Docker installiert Elasticsearch7.6-Cluster und legt Passwort fest

Ab Elasticsearch 6.8 dürfen kostenlose Benutzer d...

So verwenden Sie Yum zum Konfigurieren der lnmp-Umgebung im CentOS7.6-System

1. Details zur Installationsversion Server: Maria...

Zwei einfache Beispiele für Menünavigationsleisten

Menüleiste Beispiel 1: Code kopieren Der Code lau...

js, um einfache Lupeneffekte zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Docker Detaillierte Abbildungen

1. Einführung in Docker 1.1 Virtualisierung 1.1.1...

Best Practices zum Teilen von React-Code

Wenn ein Projekt eine gewisse Komplexität erreich...

So implementieren Sie On-Demand-Import und globalen Import in Element-Plus

Inhaltsverzeichnis Import auf Anfrage: Globaler I...

Ubuntu 18.04 Touchpad per Befehl deaktivieren/aktivieren

Unter Ubuntu kommt es häufig vor, dass sich das T...

So installieren und konfigurieren Sie Redis in CentOS7

Einführung Es ist nicht nötig, Redis im Detail vo...

Detaillierte Erläuterung des MySQL-Clusterindex und des Nicht-Clusterindex

1. Clustered-Index Tabellendaten werden in der Re...