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

Funktionsüberladung in TypeScript

Inhaltsverzeichnis 1. Funktionssignatur 2. Funkti...

Vollständige Analyse der MySQL-Datentypen

Datentyp: Die grundlegenden Regeln, die definiere...

Klassifizierung der Farbeigenschaften von Webseiten

Klassifizierung der Farbeigenschaften Jede Farbe ...

So verwenden Sie MySQL „group by“ und „order by“ gemeinsam

Angenommen, es gibt eine Tabelle: Belohnung (Belo...

So öffnen Sie externe Netzwerkzugriffsrechte für MySQL

Wie unten dargestellt: Führen Sie hauptsächlich A...

Detailliertes Tutorial zum Aufbau eines lokalen Ideenaktivierungsservers

Vorwort Der Blogger verwendet die Idea IDE. Da di...

So deinstallieren Sie Docker Toolbox vollständig

Docker Toolbox ist eine Lösung zur Installation v...

Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...

15 Best Practices für HTML-Anfänger

Hier sind 30 Best Practices für HTML-Anfänger. 1....

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...