timespec_getres

来自cppreference.com
< c‎ | chrono
定义于头文件 <time.h>
int timespec_getres( struct timespec *ts, int base );
(C23 起)

ts 为非空且 timespec_get 支持 base ,则修改 *ts 以保有 timespec_getbase 提供的时间的解析度。对每个支持的 base ,同一次程序执行期间多次调用 timespec_getres 拥有等同的结果。

参数

ts - 指向 struct timespec 类型对象的指针
base - TIME_UTC 或另一指示时间基底的非零值

返回值

若支持 base 则为 base 的值,否则为零。

注解

POSIX 函数 clock_getres(clock_id, ts) 亦可用于以 clock_id 所标识的时间的解析度填充 timespec

示例

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    char buff[128];
    struct timespec ts;
    const int res = timespec_getres(&ts, TIME_UTC);
    if (res == TIME_UTC) {
        struct tm timer;
        strftime(buff, sizeof buff, "%D %T", gmtime_r(&ts.tv_sec, &timer));
        printf("Time resolution info: %s.%09ld UTC\n", buff, ts.tv_nsec);
    } else {
        printf("TIME_UTC base is not supported.");
    }
}

可能的输出:

Time resolution info: 01/01/70 00:00:00.000000001 UTC

参阅

单位为秒和纳秒的时间
(结构体)
返回基于给定时间基底的日历时间
(函数)
返回纪元开始经过的当前系统日历时间
(函数)