Namespaces
Variants

timespec

From cppreference.net
Défini dans l'en-tête <time.h>
struct timespec ;
(depuis C11)

Structure contenant un intervalle décomposé en secondes et nanosecondes.

Table des matières

Objets membres

Membre Description
time_t tv_sec secondes entières (les valeurs valides sont >= 0 )
/* see below */ tv_nsec nanosecondes (les valeurs valides sont [ 0 , 999999999 ] )

Le type de tv_nsec est long .

(jusqu'en C23)

Le type de tv_nsec est un type entier signé défini par l'implémentation qui peut représenter des entiers dans [ 0 , 999999999 ] .

(depuis C23)

L'ordre de déclaration de tv_sec et tv_nsec n'est pas spécifié. L'implémentation peut ajouter d'autres membres à struct timespec .

Notes

Le type de tv_nsec est long long sur certaines plateformes, ce qui n'est conforme que depuis C23.

Exemple

#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);
}

Sortie possible :

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

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.27.1/3 Composants du temps (p: À DÉTERMINER)
  • Norme C17 (ISO/CEI 9899:2018):
  • 7.27.1/3 Composants du temps (p: 284)
  • Norme C11 (ISO/IEC 9899:2011):
  • 7.27.1/3 Composants du temps (p: 388)

Voir aussi

retourne le temps calendaire en secondes et nanosecondes basé sur une base de temps donnée
(fonction)
type de temps calendaire
(struct)
documentation C++ pour timespec