Namespaces
Variants

std:: timespec_get

From cppreference.net
< cpp ‎ | chrono ‎ | c
Definiert im Header <ctime>
int timespec_get ( std:: timespec * ts, int base ) ;
(1) (seit C++17)
#define TIME_UTC /* implementierungsdefiniert */
(2) (seit C++17)
1) Modifiziert das std::timespec -Objekt, auf das ts zeigt, um die aktuelle Kalenderzeit in der Zeitbasis base zu speichern.
2) Erweitert sich zu einem Wert, der geeignet ist für die Verwendung als base Argument von std::timespec_get .

Andere Makrokonstanten, die mit TIME_ beginnen, können durch die Implementierung bereitgestellt werden, um zusätzliche Zeitbasen anzuzeigen.

Wenn base gleich TIME_UTC ist, dann

  • ts - > tv_sec wird auf die Anzahl der Sekunden seit einer implementierungsdefinierten Epoche gesetzt, abgeschnitten auf einen ganzzahligen Wert,
  • ts - > tv_nsec wird auf die ganzzahlige Anzahl von Nanosekunden gesetzt, gerundet auf die Auflösung der Systemuhr.

Inhaltsverzeichnis

Parameter

ts - Zeiger auf ein Objekt vom Typ std::timespec
base - TIME_UTC oder ein anderer ganzzahliger Wert ungleich Null, der die Zeitbasis angibt

Rückgabewert

Der Wert von base bei Erfolg, andernfalls null.

Hinweise

Die POSIX-Funktion clock_gettime(CLOCK_REALTIME, ts) kann ebenfalls verwendet werden, um eine std::timespec mit der Zeit seit der Epoche zu füllen.

Beispiel

#include <ctime>
#include <iostream>
int main()
{
    std::timespec ts;
    std::timespec_get(&ts, TIME_UTC);
    char buf[100];
    std::strftime(buf, sizeof buf, "%D %T", std::gmtime(&ts.tv_sec));
    std::cout << "Current time: " << buf << '.' << ts.tv_nsec << " UTC\n";
}

Mögliche Ausgabe:

Current time: 06/24/16 20:07:42.949494132 UTC

Siehe auch

(C++17)
Zeit in Sekunden und Nanosekunden
(struct)
gibt die aktuelle Systemzeit als Zeit seit Epoche zurück
(function)
C documentation für timespec_get