table of contents
std::timespec(3) | C++ Standard Libary | std::timespec(3) |
NAME¶
std::timespec - std::timespec
Synopsis¶
Defined in header <ctime>
struct timespec; (since C++17)
Structure holding an interval broken down into seconds and nanoseconds.
Member objects¶
std::time_t tv_sec whole seconds – >= 0
long tv_nsec nanoseconds – [0, 999999999]
The declaration order of tv_sec and tv_nsec is unspecified. Implementation
may add
other data members to timespec.
Notes¶
The type of tv_nsec is long long on some platforms, which is
currently
non-conforming in C++, but is allowed in C since C23.
Example¶
// Run this code
#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';
}
Possible output:¶
Current time: 04/06/23 12:03:31 (UTC)
Raw timespec.tv_sec: 1680782611
Raw timespec.tv_nsec: 678437213
See also¶
timespec_get returns the calendar time in seconds and nanoseconds
based on a given
(C++17) time base
(function)
tm calendar time type
(class)
C documentation for
timespec
2024.06.10 | http://cppreference.com |