std::timespec
来自cppreference.com
在标头 <ctime> 定义 | ||
struct timespec; | (C++17 起) | |
保有时长的结构体,拆分成秒和纳秒。
目录 |
[编辑]数据成员
成员 | 说明 |
std::time_t tv_sec | 整秒数,值 >= 0 (公开成员对象) |
long tv_nsec | 纳秒数,范围 [ 0, 999999999] 中的值 (公开成员对象) |
tv_sec
与 tv_nsec
的声明顺序未指定。实现可以向 timespec
添加其他数据成员。
[编辑]注解
在一些平台上 tv_nsec
的类型为 longlong,这当前在 C++ 中不符合标准,但 C 从 C23 起允许。
[编辑]示例
运行此代码
#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: 因为未指明声明顺序和数据成员列表,故不能使用结构化绑定 std::cout<<"当前时间: "<< buff <<" (UTC)\n"<<"原始 timespec.tv_sec: "<< ts.tv_sec<<'\n'<<"原始 timespec.tv_nsec: "<< ts.tv_nsec<<'\n';}
可能的输出:
当前时间: 04/06/23 12:03:31 (UTC) 原始 timespec.tv_sec: 1680782611 原始 timespec.tv_nsec: 678437213
[编辑]参阅
(C++17) | 返回基于给定时间基底的以秒和纳秒计的日历时间 (函数) |
日历时间类型 (类) | |
timespec 的 C 文档 |