我在录制MacOS(OS X El Capitan 10.11.2)中的时间间隔(至少以毫秒为单位)时遇到问题。
显然,基本思路是将时间记录两次并进行减法。当我发现“sys / time.h”中的gettimeofday()和这个函数的结构 - struct timeval时,问题就发生了。然后我得到了时间间隔,并希望根据时间间隔让它睡眠。但是,似乎nanosleep()或usleep()没有timeval类型的参数(忽略sleep(),因为我至少需要毫秒)。
我应该将timeval转换为适合nanosleep()或usleep()吗?还是有更好更简单的方法?
答案 0 :(得分:0)
此示例使用select
在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, NULL, NULL, &tv);
printf("done!\n");
return 0;
}