C-Programmierung

So verwenden Sie die Funktion gettimeofday in der Sprache C C?

So verwenden Sie die Funktion gettimeofday in der Sprache C C?
Das gettimeofday() Funktion ruft die Uhrzeit des Systems ab. Die aktuelle Zeit wird in verstrichenen Sekunden und Mikrosekunden seit 00:00:00, 1. Januar 1970 (Unix-Epoche) ausgedrückt. In diesem Artikel zeigen wir Ihnen, wie Sie die gettimeofday() Funktion unter Linux. Also lasst uns anfangen.

Syntax

int gettimeofday ( struct timeval *tp ,  struct timezone *tz )

Das gettimeofday() Funktion ist definiert in System/Zeit.ha Header-Datei.

Argumente

Diese Funktion benötigt zwei Argumente:

Die 1st Argument weist auf die Zeitwert Struktur. Das Zeitwert Struktur wird wie folgt deklariert in System/Zeit.ha Header-Datei :

struct    timeval  
time_t        tv_sec ; // Sekunden lang verwendet
suseconds_t       tv_usec ; // für Mikrosekunden verwendet

Die Struktur struct timeval stellt eine Kalenderzeit dar. Es hat zwei Mitglieder:

Die 2nd Argument weist auf die Zeitzone Struktur. Es sollte normalerweise auf NULL gesetzt werden, weil Zeitzone strukturieren ist obsolet. Dieses Argument dient nur der Abwärtskompatibilität.

Rückgabewerte

Bei Erfolg, die gettimeofday() 0 zurückgeben, bei einem Fehler gibt die Funktion -1 . zurück.

Einfach Zeit abrufen und drucken

#einschließen
#einschließen
int main()
struct timeval current_time;
gettimeofday(&aktuelle_Zeit, NULL);
printf("Sekunden: %ld\nMikrosekunden: %ld",
aktuelle Uhrzeit.tv_sec, aktuelle_zeit.tv_usec);
0 zurückgeben;

Ausgabe:

Hier, System/Zeit.ha wurde aufgenommen für gettimeofday() Funktion und Zeitstruktur. Das gettimeofday() Funktion setzt die Zeit in timeval (current_time) Strukturmember. tv_sec ist die ganzzahlige Anzahl von Sekunden, die seit dem Start des UNIX-Epoche, um Mitternacht UTC am 1. Januar 1970 und tv_usec ist die zusätzliche Anzahl von Mikrosekunden, die seit tv_sec verstrichen sind. Wenn Sie das Programm ausführen, sollten Sie die Ausgabe sehen. Jedes Mal, wenn Sie das Programm ausführen, ändert sich die Ausgabe.

NULL-Argumentfehler

#einschließen
#einschließen
int main()
 
struct timeval current_time;
gettimeofday(NULL, NULL);
0 zurückgeben;

Ausgabe:

In diesem Beispiel zeigt das erste Argument der gettimeofday() Funktion sollte nicht NULL sein. Eine Kompilierungswarnung wird ausgegeben, wenn das erste Argument NULL ist.

Beispiel für die Formatierung der aktuellen Uhrzeit

#einschließen
#einschließen
#einschließen
int main()
strukturieren Sie Timeval-TV;
Zeit_t t;
struct tm *info;
Zeichenpuffer[64];
 
gettimeofday(&tv, NULL);
t = Fernseher.tv_sek;
info = Ortszeit(&t);
printf("%s",asctime (info));
strftime (buffer, sizeof buffer, "Heute ist %A, %B %d.\n", info);
printf("%s",Puffer);
strftime (buffer, sizeof buffer, "Die Zeit ist %I:%M %p.\n", info);
printf("%s",Puffer);
0 zurückgeben;

Ausgabe:

In diesem Beispiel wird gezeigt, wie Datum und Uhrzeit in verschiedenen Formaten gedruckt werden. Es ist nicht ganz einfach, Daten aus dem Rückgabewert von darzustellen gettimeofday() Funktion . Hier, Ortszeit() und strftime() Funktionen werden verwendet, um den Rückgabewert von . schön darzustellen gettimeofday().

Das Ortszeit() Die Funktion nimmt ein Argument an, das eine Referenz auf einen Zeiger der . ist tv_sec Bereich Zeitwert strukturieren und gibt eine Referenz auf einen Zeiger von a . zurück strukturiere tm Objekt.

Das strftime() generiert eine personalisierte, formatierte Zeichenfolge mit Datum und Uhrzeit des strukturiere tm Zeiger. Formatbezeichner werden für die formatierte Anzeige verwendet. Die Formatzeichenfolge „%d-%m-%Y %H:%M:%S“ gibt beispielsweise Datum und Uhrzeit in dieser Form an:

14.04.2020 13:09:42

Im Folgenden sind die Konvertierungsspezifizierer aufgeführt, die für die formatierte Anzeige verwendet werden können:

Bezeichner Bedeutung
%ein Der abgekürzte Name des Wochentages gemäß der aktuellen Gebietsschema.
%EIN Der Name des Wochentages gemäß der aktuellen Gebietsschema.
%b Name des abgekürzten Monats gemäß dem aktuellen Gebietsschema.
%B Name des vollen Monats gemäß der aktuellen Gebietsschema.
%c Die bevorzugte Darstellung von Datum und Uhrzeit für das aktuelle Gebietsschema.
%d Als Dezimalzahl für den Tag des Monats (Bereich 01 - 31).
%H Verwenden von 24-Stunden (Bereich 00 - 23) auf die Stunde als Dezimalzahl.
%ICH Verwenden von 12 Stunden (Bereich 00 - 23) auf die Stunde als Dezimalzahl.
%j Als Dezimalzahl für den Tag des Jahres (Bereich 001-366).
%m Als Dezimalzahl für den Monat (Bereich 01 - 12).
%M Die Dezimalzahl der Minute.
%p Basierend auf dem angegebenen Zeitwert, entweder 'am' oder 'pm' oder die entsprechenden Zeichenfolgen für das aktuelle Gebietsschema.
%S Die Dezimalzahl der Sekunde.
%x Bevorzugte Darstellung des Datums für das aktuelle Gebietsschema, jedoch ohne Uhrzeit.
%X Bevorzugte Darstellung der Uhrzeit für das aktuelle Gebietsschema, jedoch ohne Datum.
%y Das Jahr ist dezimal, aber kein Jahrhundert (Bereich von 00 - 99).
%Y Das Jahr ist dezimal einschließlich Jahrhundert.
%Z Die Zeitzone.

Verwenden von gettimeofday, um die Programmausführungszeit zu messen

#einschließen
#einschließen
 
int main()
 
struct timeval start, end;
gettimeofday(&start, NULL);
 
für (int i = 0; i <1e5 ; i++)

 
gettimeofday(&end, NULL);
printf("Zeit zum Zählen bis 10^5 ist: %ld Mikrosekunden\n",
((Ende.tv_sec * 1000000 + Ende.tv_usec) -
(Start.tv_sec * 1000000 + Start.tv_usec)));
0 zurückgeben;

Ausgabe:

Dieses Beispiel zeigt, wie gettimeofday() Funktion kann zur Berechnung der Ausführungszeit eines Programms verwendet werden.

Fazit

Auf diese Weise wird die gettimeofday() Funktion könnte unter Linux verwendet werden. Für die Portierung von bestehendem Code ist die gettimeofday() Funktion kann verwendet werden, sollte aber in neuem Code nicht verwendet werden. clock_gettime()  Funktion kann anstelle von verwendet werden gettimeofday().

So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...