Namespaces
Variants
Actions

std::timespec

From cppreference.com
< cpp‎ | chrono‎ | c
 
 
Date and time library
(C++11)
(C++20)
(C++11)
(C++11)
(C++11)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)

 
C-style date and time utilities
Functions
Time manipulation
(C++17)
Format conversions
Constants
Types
timespec
(C++17)
 
Defined in header <ctime>
struct timespec;
(since C++17)

Structure holding an interval broken down into seconds and nanoseconds.

[edit] Data members

Member Description
whole seconds, the value is >= 0
(public member object)
long tv_nsec
nanoseconds, the value is in range [0999999999]
(public member object)

The declaration order of tv_sec and tv_nsec is unspecified. Implementation may add other data members to timespec.

[edit] 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.

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

[edit] See also

returns the calendar time in seconds and nanoseconds based on a given time base
(function) [edit]
calendar time type
(class) [edit]
C documentation for timespec
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/chrono/c/timespec&oldid=180252"

AltStyle によって変換されたページ (->オリジナル) /