GetTimeofday und SetTimeofday in C

GetTimeofday und SetTimeofday in C
„Viele von uns werden die beiden Funktionen im Zusammenhang mit der Zeit im Linux -Betriebssystem kennen. Sie sind GetTimeofday () -Funktion und SetTimeOfday () -Funktion. Beide Funktionen helfen uns, die tatsächliche Zeit in der Linux -Plattform zu bestimmen. Im heutigen Gespräch werden wir die Eigenschaften und Funktionsmechanismen dieser Funktionen untersuchen.

Zuerst werden wir die Funktion GetTimeofday () verstehen.”

GetTimeofday ()

Die Funktion GetTimeOfday () ist eine Standardfunktion, deren Definition in einer Header -Datei in der C -Bibliothek mit dem Namen SYS/TIME geschrieben ist.H.

Syntax
Die Syntax der GetTimeOfday () -Funktion wird unten beschrieben

Int GetTimeOfday (struct timeval * tm_vl, struct timezone * tm_zn)

GetTimeOfday () -Funktion nimmt zwei Parameter als Argumente in ihrer Klammern auf. Einer von ihnen ist der tm_vl Variable, die den Zeitval -Datentyp enthält, und ein anderer ist die tm_zn Variable, die Zeitzonendatenatyp enthält.

Es gibt zwei Standarddatenmitglieder, die in der Timeval -Struktur vorhanden sind. Der erste ist TV_SEC, und ein anderer ist TV_USEC. TV_SEC repräsentiert die Zeit in Sekunden und Fernsehen_usec repräsentiert die Zeitspanne in einer Mikrosekunde.

Derzeit wird die Zeitzonenstruktur nicht verwendet, da sie über einen bestimmten Zeitraum in ihrem Wert verringert wird. Dafür bestehen wir NULL Als Wert der Zeitzonenstruktur.

Programmierbeispiel 1
Dies ist ein Programm, mit dem die Zeit für eine bestimmte Funktion zur Ausführung benötigt wird.

#enthalten
#enthalten
#enthalten
#enthalten
float tm_com (struct timeval *str, struct timeval *lst)

return (LST-> TV_SEC-STR-> TV_SEC) + 1E-6*(LST-> TV_USEC-STR-> TV_USEC);

Hohlraum Iteration (size_t count)

für (int j = 0; j %d) Zeit genommen: %0.8f Sec \ n ",
count1, tm_com (& str, & lst));
GetTimeofday (& str, null);
Iteration (count2);
GetTimeofday (& lst, null);
printf ("Iteratorfunktion (Schleifenanzahl -> %d) Zeitaufnahme: %0.8f Sec \ n ",
count2, tm_com (& str, & lst));
exit (exit_success);

Ausgang

Erläuterung
In der Funktion main () erstellen wir zwei benannte Variablen “str" Und "LST" einer Struktur namens „Timeval.” Wir werden auch zwei benannte Variablen erstellen "Count1" Und "Count2".

In der Funktion GetTimeofday () werden wir bestehen "Str" Und NULL. Dann werden wir eine Funktion namens namens aufrufen "Wiederholung," Welche Definition ist über der Funktion main () geschrieben. In der Funktion iteration () werden wir die übergeben "Count1". In der Funktion GetTimeofday () werden wir bestehen "LST" Und NULL.

Danach von "LST" Und "Str", " Wir werden die Ausführungszeit für die Funktion erhalten "Wiederholung" für Wert "Count1" Als erste Ausgabe.

Der obige Vorgang erfolgt erneut für einen weiteren größeren Wert, der durch die Variable geführt wird "Count2".

Deshalb haben wir beobachtet, dass die Ausführungszeit für "Count2" ist mehr als "Count1".

Programmierbeispiel 2
Dieses Programm zeigt den Rückgabewert von GetTimeofday über Erfolg oder Misserfolg.

#enthalten
#enthalten
#enthalten
int main (int argc, char *argv [])

Strukturzeitvalstrom;
int ld;
LD = GetTimeOfday (& Current, NULL);
if (ld == 0)
printf ("Diese Anweisung wird ausgeführt . Dies bedeutet, dass GetTimeofday erfolgreich ist. \N");
printf ("Sekunde: %lu \ n mikrosekunden: %06lu \ n",
aktuell.TV_SEC, aktuell.TV_USEC);

anders
printf ("Diese Anweisung wird ausgeführt . Dies bedeutet, dass GetTimeofday erfolglos ist!! errno = %d \ n ",
errno);
Return -1;

Rückkehr 0;

Ausgang

Erläuterung
Hier erstellen wir eine Variable mit dem Namen "aktuell" unter der Timeval -Struktur und einer ganzzahligen Variablen mit dem Namen "Ausweis. Jetzt werden wir die Funktion GetTimeofday () aufrufen und zwei Parameter als Argumente übergeben. Die beiden Argumente sind "aktuell" Und NULL. Welcher Wert diese Funktion zurücksetzt; Es wird der ID -Variablen zugewiesen.

Wenn das "AusweisDer Wert ist Null, die Funktion GetTimeOfday () wird erfolgreich ausgeführt und druckt die Zeit in Sekunde und Mikrosekunde. ansonsten nicht erfolgreich ausführen.

setTimeofday ()

Die Funktion setTimeofday () ist eine Standardfunktion, deren Definition in einer Header -Datei in der C -Bibliothek mit dem Namen SYS/TIME erwähnt wird.H. Diese Funktion hilft uns, die Uhrzeit für den universellen Zeitstandard zu erreichen.

Syntax

Die Syntax der SetTimeOfday () -Funktion wird unten beschrieben.

int setTimeofday (struct timeval * tm_vl, struct timezone * tm_zn)

setTimeofday () -Funktion nimmt zwei Parameter als Argumente in ihrer Klammung auf. Einer von ihnen ist tm_vl; Es ist ein Zeiger der Timeval -Struktur, der die Zeit in Sekunden und Mikrosekunden darstellt. Ein anderer ist tm_zn. Derzeit wird die Zeitzonenstruktur nicht verwendet. Dafür bestehen wir NULL Als Wert der Zeitzonenstruktur.

Kehrt zurück
Bei erfolgreicher Ausführung der Funktion SetTimeOfday () gibt es 0 zurück. 0.

Bei der erfolglosen Ausführung von SetTimeOfday () -Funktion gibt es -1 zurück.

Programmierbeispiel 3
Diese Funktion zeigt den Rückgabewert für die erfolgreiche Ausführung dieser Funktion.

#enthalten
#enthalten
#enthalten
int main ()

struct timeval tm_vl;
int Sreturn;
tm_vl.TV_SEC = 1885151555;
tm_vl.TV_USEC = 0;
sReturn = setTimeofday (& tm_vl, null);
if (sReturn == 0)

printf ("setTimeofday wird ohne Fehler \ n" ausgeführt);

anders
printf ("setTimeofday ist erfolglos"
"errno = %d \ n", errno);
Return -1;

Rückkehr 0;

Ausgang
Laufen Sie ohne sudo und so SetTimeOfday () ist fehlgeschlagen.

Laufen Sie mit sudo und so setTimeofday () ist erfolgreich.

Erläuterung
Hier erstellen wir zwei benannte Variablen "TV_SEC" Und “TV_USEC.” Beide Variablen sind ein Mitglied der "Zeitval" Struktur und etwas Wert zuweisen. Dann rufen wir die Funktion setTimeofday () auf und in der Funktion werden wir die übergeben "Tm_val" Variable. Welchen Wert auch immer zurückgeben, diese Funktion wird dem zugewiesen "Sreturn" Variable. Wenn der "Sreturn" Die Variable gibt 0 zurück, dann wurde diese Funktion erfolgreich ausgeführt und gibt ihre Ausgabe an. ansonsten nicht erfolgreich ausgeführt und druckt den Wert von "Errno" zu einem bestimmten Wert (für dieses Programm ist es 1).

Hier haben wir zunächst das Programm ohne Sudo ausgeführt, und deshalb konnte SetTimeOfday () nicht erfolgreich ausgeführt und -1 zurückkehren.

Zum zweiten Mal haben wir das Programm mit sudo ausgeführt, und SetTimeOfday () ist erfolgreich und kehrte 0 zurück.

Abschluss

In der früheren Diskussion haben wir viele Informationen über die Funktion GetTimeofday () und setTimeofday () erhalten. Diese beiden Funktionen sind die wichtigsten Funktionen in Bezug auf die Linux -Plattform in der C -Sprache im Inhalt der Zeit. Um Zeit als Eingabe zu erhalten und Zeit auf das System festzulegen, helfen uns diese beiden Funktionen sehr bei der Konfiguration des Systems.