Syntax
Unsigned Int Alarm (nicht signierte int Sekunden)Die Funktion ist in definiert in Unistd.H Header-Datei.
Argumente
Die Funktion nimmt ein Argument an, Sekunden. Nach Sekunden Sekunden sind seit der Anforderung der Anforderung des Alarm() Funktion, die Sigalrm Signal wird erzeugt. Das Standardverhalten nach Erhalt von Sigalrm ist, den Prozess zu beenden. Aber wir können das Signal fangen und umgehen. Siehe Details zur Handhabung der Signalabwicklung.
Der Alarm() Die Funktion gibt einen Nicht -Nullwert zurück, wenn zuvor ein anderer Alarm festgelegt wurde und der Wert die Anzahl der verbleibenden Sekunden für den vorherigen geplanten Alarm aufgrund der gelieferten. Ansonsten Alarm() wird Null zurückgeben.
Beispiel 1.C:
#enthaltenIm Screenshot der Ausgabe von Beispiel 1.C, Das Programm wird mit dem Befehl Time ausgeführt, sodass wir einen Überblick über die Ausführungszeit des Programms erhalten können. Wir haben beobachtet, dass wir in der Hauptfunktion aufrufen Alarm() Funktion, geplant für 2 Sekunden. Für die Schleife wird also nach 2 Sekunden Sig_handler -Funktion aufgerufen und die Ausführung der Hauptfunktion wird angehalten. Nach Ausführung der Funktion SIG_Handler wird in der Hauptfunktion für die Schleifenausführung wieder aufgenommen. Hier verwenden wir die Schlaffunktion zur Verzögerung, damit wir den Fluss der Ausführung verstehen können. Die for -Schleife ist eine unendliche Schleife. Wenn wir eine Interrupt -Taste (Strg+C) drücken, wird die Ausführung gestoppt.
Erstellen Sigalrm Verwendung Signal() Funktion kann nicht gestapelt werden. Einziger Sigalrm Generation kann geplant werden. Aufeinanderfolgende Anrufe von Signal() Funktion setzen Sie den Wecker des Aufrufprozesses zurück.
Beispiel2.C :
#enthaltenIm Screenshot der Ausgabe von Beispiel2.C, Wir können sehen, dass das Programm mehr als 7 Sekunden ausgeführt wurde, aber der erste Alarm, der nach 4 Sekunden geplant war. Der zweite Alarm, der nach 1 Sekunde geplant war.
Wenn der Wert der Argumentsekunden Null ist, wird eine zuvor gemachte Alarmanforderung storniert.
Beispiel3.C:
#enthaltenIm Screenshot der Ausgabe von Beispiel3.C, Wir können sehen, dass der erste Alarm, der nach 2 Sekunden geplant war.
In Beispiel4.C Wir werden sehen, wie kontinuierlich wir alle 2 Sekunden einen Alarm einstellen können.
Beispiel4.C:
#enthaltenIm Screenshot der Ausgabe von Beispiel4.C, Wir können sehen, dass der Alarm in alle 2 Sekunden kontinuierlich ist. Wir setzen den Alarm in der Funktion SIG_Handler zurück.
In Beispiel5.C Wir werden sehen, wie wir den bereits geplanten Alarm verzögern können. Wir werden SIGINT -Signal für Interrupt verwenden. Wenn Benutzer -Taste in der Tastatur Taste tippen, Sigint Signal erzeugt.
Beispiel5.C:
#enthaltenIm Screenshot der Ausgabe von Beispiel5.C, Wir sehen. In diesem Programm haben wir nur eine Handler -Funktion für zwei verschiedene Signale verwendet, aber in der Handler -Funktion wurde überprüft, dass die Handler -Funktion aufgerufen wird.
Abschluss:
Wir haben also gesehen, dass die Alarmfunktion für das Auslösen von Signal eingestellt werden kann, wie Alarm zurückgesetzt wird, wie man bereits geplante Alarm absagt.