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

CSS zum Erzielen eines Animationseffekts der Tik Tok-Abonnementschaltfläche

Ich habe mir vor einiger Zeit Tik Tok angesehen u...

Eine einfache Methode zum Ändern der Größe hochgeladener Nginx-Dateien

Originallink: https://vien.tech/article/138 Vorwo...

So konfigurieren Sie pseudostatisches und clientadaptives Nginx

Das Backend verwendet das Framework thinkphp3.2.3...

So zeigen Sie den Speicherort von MySQL-Datendateien an

Wir haben möglicherweise eine Frage: Nachdem wir ...

Implementierungscode der CSS-Formularvalidierungsfunktion

Rendern Prinzip Im Formularelement gibt es ein Mu...

Tutorial zur Installation von Ubuntu 20.04 und NVIDIA-Treibern

Installieren Sie Ubuntu 20.04 Installieren Sie NV...

Konfigurationslösung für die MySQL Dual-Master-Architektur (Master-Master)

In Unternehmen hat die hohe Verfügbarkeit von Dat...

Allgemeiner Leitfaden zur Sicherheitskonfiguration von Linux/CentOS-Servern

Linux ist ein offenes System. Im Internet sind vi...

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS

Das Filterattribut definiert die visuelle Wirkung...

FTP-Remoteverbindung zu Linux über SSH

Installieren Sie zunächst SSH in Linux. Nehmen Si...

Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

Inhaltsverzeichnis Indexmodell B+Baum Indexauswah...