加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – MacOS中是否存在“struct timeval”的nanosleep函数?

发布时间:2020-12-16 06:50:55 所属栏目:百科 来源:网络整理
导读:我在MacOS(OS X El Capitan 10.11.2)中记录时间间隔(至少以毫秒为单位)时遇到问题. 显然,基本思想是将时间记录两次并进行减法.当我发现“sys / time.h”中的gettimeofday()和这个函数的结构 – struct timeval时,问题就发生了.然后我得到了时间间隔,并希望根
我在MacOS(OS X El Capitan 10.11.2)中记录时间间隔(至少以毫秒为单位)时遇到问题.

显然,基本思想是将时间记录两次并进行减法.当我发现“sys / time.h”中的gettimeofday()和这个函数的结构 – struct timeval时,问题就发生了.然后我得到了时间间隔,并希望根据时间间隔让它睡眠.但是,似乎nanosleep()或usleep()没有timeval类型的参数(忽略sleep()因为我至少需要毫秒).

我应该将timeval转换为适合nanosleep()或usleep(),还是有更好更简单的方法?

解决方法

此示例使用select to sleep on timeval值(此处为10秒):

#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/select.h>

int main(void) 
{
    printf("start...n");
    struct timeval tv = {10,0};
    select(0,NULL,&tv);
    printf("done!n");
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读