timespec_get

timespec_get

在头文件中定义
int timespec_get(struct timespec * ts,int base)(自C11以来)
#define TIME_UTC / *实现定义的* /(自C11以来)

1)修改timespec指向的对象以ts在时基中保存当前日历时间base

2)扩展为适合用作base参数的值timespec_get

其他的宏常量TIME_可以由实现提供,以指示附加的时基。

如果baseTIME_UTC,那么。

  • ts-> tv_sec被设置为自实现定义时期以来的秒数,被截断为整个值

参数

TS-指向struct timespec类型的对象的指针
基础-TIME_UTC或指示时基的另一个非零整数值

返回值

base成功的价值,否则为零。

笔记

POSIX函数clock_gettime(CLOCK_REALTIME,ts)也可以用来填充timespec自Epoch以来的时间。

#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

参考

  • C11标准(ISO / IEC 9899:2011):