在MacOS中是否有“struct timeval”的nanosleep函数?

时间:2016-01-12 23:27:55

标签: c++ c macos

我在录制MacOS(OS X El Capitan 10.11.2)中的时间间隔(至少以毫秒为单位)时遇到问题。

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

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

1 个答案:

答案 0 :(得分:0)

此示例使用selecttimeval值上休眠(此处为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, NULL, NULL, &tv);
    printf("done!\n");
    return 0;
}