国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > timespec_get 以获得更好的体验。

# C 语言标准库函数 timespec_get

在头文件 time.h 中定义。
/*********************************************
 * @brief 根据时间基准获取当前时间
 * @param ts 返回当前时间
 * @param base 时间基准
 * @return 是(0)否(非 0)成功
 ********************************************/
int timespec_get(struct timespec* ts, int base);

!subtitle:说明

根据时间基准获取当前时间。

时间基准 base 设为 TIME_UTC 时:

  • ts->tv_sec 被设为自某纪元(由实现定义)以来的秒数(截断为整数)

  • ts->tv_nsec 被设为纳秒的整数(四舍五入到系统时间分辨率)

!subtitle:参数

  • ts - 返回当前时间

  • base - 时间基准

!subtitle:返回值

  • 成功时返回 0

  • 失败时返回非 0

# 示例

#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("当前时间为 %s.%09ld UTC\n", buff, ts.tv_nsec);

    return 0;
}

运行结果:

当前时间为 10/12/25 02:03:03.176689984 UTC

# 推荐阅读

# 参考标准

  • C23 standard (ISO/IEC 9899:2024):

    • 7.29.2.6 The timespec_get function (p: TBD)

  • C17 standard (ISO/IEC 9899:2018):

    • 7.27.2.5 The timespec_get function (p: 286)

  • C11 standard (ISO/IEC 9899:2011):

    • 7.27.2.5 The timespec_get function (p: 390)

本文 更新于: 2025-11-27 09:38:11 创建于: 2025-11-27 09:38:11