Namespaces
Variants

timespec

From cppreference.net
Definido en el encabezado <time.h>
struct timespec ;
(desde C11)

Estructura que contiene un intervalo desglosado en segundos y nanosegundos.

Contenidos

Objetos miembro

Miembro Descripción
time_t tv_sec segundos completos (los valores válidos son >= 0 )
/* see below */ tv_nsec nanosegundos (los valores válidos son [ 0 , 999999999 ] )

El tipo de tv_nsec es long .

(hasta C23)

El tipo de tv_nsec es un tipo entero con signo definido por la implementación que puede representar enteros en [ 0 , 999999999 ] .

(desde C23)

El orden de declaración de tv_sec y tv_nsec no está especificado. La implementación puede agregar otros miembros a struct timespec .

Notas

El tipo de tv_nsec es long long en algunas plataformas, lo cual es conforme solo desde C23.

Ejemplo

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

Salida posible:

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

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.27.1/3 Componentes del tiempo (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.27.1/3 Componentes del tiempo (p: 284)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.27.1/3 Componentes de tiempo (p: 388)

Véase también

devuelve el tiempo calendario en segundos y nanosegundos basado en una base de tiempo dada
(función)
tipo de tiempo calendario
(estructura)