首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确地添加timespec变量

如何正确地添加timespec变量
EN

Stack Overflow用户
提问于 2022-04-08 02:20:04
回答 1查看 416关注 0票数 0

我基本上是试图设置一个定时器,以等待从当前时间指定的秒数。我知道timespec的tv_sec只包含整数。所以,如果我需要等待1.5秒或0.1秒,我就在挣扎着该怎么做。

下面是我为它编写的代码:

代码语言:javascript
复制
struct timespec timeToWait;
        clock_gettime(CLOCK_REALTIME, &timeToWait);
        int rt;

        timeToWait.tv_sec += p1->intrval; //adding specified wait time
        pthread_mutex_lock(&lock);
        do{
                rt = pthread_cond_timedwait(&cond,&lock,&timeToWait);
        }while (rt == 0);
        pthread_mutex_unlock(&lock);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-08 02:25:05

struct timespec有另一个名为tv_nsec的字段,它指定纳秒部分。

因此,如果要等待1.5秒,请将1添加到timeToWait.tv_sec,并将500000000添加到timeToWait.tv_nsec。如果在这样做之后,timeToWait.tv_nsec大于1000000000,那么从timeToWait.tv_nsec中减去1000000000,然后再向timeToWait.tv_sec添加一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71790967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档