Namensräume
Varianten
Aktionen

timespec

Von cppreference.com
< c‎ | chrono
Definiert in Header <time.h>
struct timespec;
(seit C11)

Struktur, die ein Intervall in Sekunden und Nanosekunden unterteilt.

Inhalt

[bearbeiten] Member-Objekte

Mitglied Beschreibung
time_t tv_sec Ganze Sekunden (gültige Werte sind >= 0)
/* siehe unten */ tv_nsec Nanosekunden (gültige Werte sind [0999999999])

Der Typ von tv_nsec ist long.

(bis C23)

Der Typ von tv_nsec ist ein implementierungsdefinierter vorzeichenbehafteter Ganzzahltyp, der Ganzzahlen im Bereich [0999999999] darstellen kann.

(seit C23)

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

[bearbeiten] Hinweise

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

[bearbeiten] 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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

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