命名空间
变体
操作

timespec_getres

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

如果 ts 非空且 basetimespec_get 所支持,则修改 *ts 以保存由 timespec_getbase 提供的时间分辨率。对于每个受支持的 base,在同一程序执行期间对 timespec_getres 的多次调用将得到相同的结果。

内容

[编辑] 参数

ts - 指向类型为 struct timespec 的对象的指针
base - TIME_UTC 或其他非零整数,表示时间基准

[编辑] 返回值

如果 base 被支持,则返回 base 的值,否则返回 0。

[编辑] 备注

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

[编辑] 另请参阅

以秒和纳秒表示的时间
(结构体)[编辑]
基于给定时间基准返回以秒和纳秒表示的日历时间
(函数) [编辑]
返回自纪元以来的系统当前日历时间
(函数) [编辑]