当调用clock_gettime()时返回的tv_nsec字段实际上可能超过一秒吗?

2024-01-11

当你调用clock_gettime()它返回一个 timespec 结构。

struct timespec {
    time_t tv_sec; /* seconds */
    long tv_nsec; /* nanoseconds */
};

我在手册页中没有找到 tv_nsec 不会超过一秒的保证。担保人真的存在吗?它可能依赖于 Linux 的库(glibc?)实现吗?

关键思想是:我是否需要“标准化”来自clock_gettime()功能?


根据开放群 http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html

tv_nsec 成员仅在大于或等于零时才有效,并且 小于一秒的纳秒数(10 亿)。这 该结构描述的时间间隔为(tv_sec * 10'-.4m'9'.4m' + tv_nsec) 纳秒。

所以根据 opengroup 的说法,官方看起来必须小于 1 秒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当调用clock_gettime()时返回的tv_nsec字段实际上可能超过一秒吗? 的相关文章