std:: timespec
From cppreference.net
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<ctime>
|
||
|
struct
timespec
;
|
(desde C++17) | |
Estructura que contiene un intervalo desglosado en segundos y nanosegundos.
Contenidos |
Miembros de datos
| Miembro | Descripción |
|
std::time_t
tv_sec
|
segundos completos, el valor es >=
0
(objeto miembro público) |
|
long
tv_nsec
|
nanosegundos, el valor está en el rango
[
0
,
999999999
]
(objeto miembro público) |
El orden de declaración de
tv_sec
y
tv_nsec
no está especificado. La implementación puede agregar otros miembros de datos a
timespec
.
Notas
El tipo de
tv_nsec
es
long
long
en algunas plataformas, lo cual actualmente no es conforme en C++, pero está permitido en C desde C23.
Ejemplo
Ejecutar este código
#include <ctime> #include <iostream> int main() { std::timespec ts; std::timespec_get(&ts, TIME_UTC); char buff[0x80]; std::strftime(buff, sizeof buff, "%D %T", std::gmtime(&ts.tv_sec)); // auto [sec, nsec] = ts; // UB: structured bindings should not be used because the // declaration order and data member list are unspecified std::cout << "Current time: " << buff << " (UTC)\n" << "Raw timespec.tv_sec: " << ts.tv_sec << '\n' << "Raw timespec.tv_nsec: " << ts.tv_nsec << '\n'; }
Salida posible:
Current time: 04/06/23 12:03:31 (UTC) Raw timespec.tv_sec: 1680782611 Raw timespec.tv_nsec: 678437213
Véase también
|
(C++17)
|
devuelve el tiempo calendario en segundos y nanosegundos basado en una base de tiempo dada
(función) |
|
tipo de tiempo calendario
(clase) |
|
|
Documentación C
para
timespec
|
|