timespec
来自cppreference.com
在标头 <time.h> 定义
|
||
struct timespec; |
(C11 起) | |
保有时间间隔的结构体,将其拆分成秒数和纳秒数。
成员对象
time_t tv_sec | 整秒数(合法值 >= 0) |
/* 见后述 */ tv_nsec | 纳秒数(合法值为 [0, 999999999] ) |
|
(C23 前) |
|
(C23 起) |
tv_sec
与 tv_nsec
的声明顺序未指定。实现可以添加其他成员到 struct timespec 。
注解
在一些平台上 tv_nsec
的类型为 long long ,这仅从 C23 起遵循标准。
示例
运行此代码
#include <stdio.h> #include <time.h> #include <stdint.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); printf("Raw timespec.time_t: %jd\n", (intmax_t)ts.tv_sec); printf("Raw timespec.tv_nsec: %09ld\n", ts.tv_nsec); }
可能的输出:
Current time: 11/24/21 03:10:50.408191283 UTC Raw timespec.time_t: 1637723450 Raw timespec.tv_nsec: 408191283
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.27.1/3 Components of time (第 284 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.27.1/3 Components of time (第 388 页)
参阅
(C11) |
返回基于给定时间基底的日历时间 (函数) |
日历时间类型 (结构体) |