命名空间
变体
操作

timespec_get

来自 cppreference.com
< c‎ | chrono
定义在头文件 <time.h>
int timespec_get( struct timespec *ts, int base );
(1) (自 C11 起)
#define TIME_UTC /* 实现定义 */
(2) (自 C11 起)
1) 修改 ts 指向的 timespec 对象,使其包含以时间基准 base 表示的当前日历时间。
2) 展开为一个适合用作 timespec_getbase 参数的值

实现可能提供以 TIME_ 开头的其他宏常量来指示其他时间基准

如果 baseTIME_UTC,则

  • ts->tv_sec 设置为自实现定义纪元以来的秒数,截断为整数值
  • ts->tv_nsec 成员设置为纳秒的整数值,四舍五入到系统时钟的分辨率

内容

[编辑] 参数

ts - 指向 struct timespec 类型的对象的指针
base - TIME_UTC 或另一个非零整数,指示时间基准

[编辑] 返回值

如果成功,则为 base 的值,否则为零。

[编辑] 注意

POSIX 函数 clock_gettime(CLOCK_REALTIME, ts) 也可以用于填充 timespec,使其包含自纪元以来的时间。

[编辑] 示例

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}

可能的输出

Current time: 02/18/15 14:34:03.048508855 UTC

[编辑] 参考文献

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.27.2.5 timespec_get 函数 (p: 286)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.27.2.5 timespec_get 函数 (p: 390)

[编辑] 参见

以秒和纳秒表示的时间
(结构)[编辑]
返回基于给定时间基准的日历时间的分辨率
(函数) [编辑]
返回系统当前的日历时间,表示为自纪元以来的时间
(函数) [编辑]
C++ 文档 for timespec_get