Namespaces
Variants

timespec

From cppreference.net
Definiert im Header <time.h>
struct timespec ;
(seit C11)

Struktur, die ein Intervall in Sekunden und Nanosekunden aufgeschlüsselt hält.

Inhaltsverzeichnis

Member-Objekte

Member Beschreibung
time_t tv_sec Ganze Sekunden (gültige Werte sind >= 0 )
/* see below */ tv_nsec Nanosekunden (gültige Werte sind [ 0 , 999999999 ] )

Der Typ von tv_nsec ist long .

(bis C23)

Der Typ von tv_nsec ist ein implementierungsdefinierter vorzeichenbehafteter Ganzzahltyp, der ganze Zahlen in [ 0 , 999999999 ] darstellen kann.

(seit C23)

Die Deklarationsreihenfolge von tv_sec und tv_nsec ist nicht spezifiziert. Implementierungen können weitere Member zu struct timespec hinzufügen.

Hinweise

Der Typ von tv_nsec ist long long auf einigen Plattformen, was erst seit C23 konform ist.

Beispiel

#include <stdint.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
    printf("Raw timespec.tv_sec: %jd\n", (intmax_t)ts.tv_sec);
    printf("Raw timespec.tv_nsec: %09ld\n", ts.tv_nsec);
}

Mögliche Ausgabe:

Current time: 04/04/24 14:45:17.885909786 UTC
Raw timespec.tv_sec: 1712241917
Raw timespec.tv_nsec: 885909786

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.27.1/3 Komponenten der Zeit (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.27.1/3 Komponenten der Zeit (S: 284)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.27.1/3 Komponenten der Zeit (S: 388)

Siehe auch

gibt die Kalenderzeit in Sekunden und Nanosekunden basierend auf einer gegebenen Zeitbasis zurück
(Funktion)
Kalenderzeit-Typ
(Struktur)
C++-Dokumentation für timespec