我可以将时间间隔作为睡眠参数传递吗?

Can I pass a timeval as argument to sleep?

我可以传递一个 timeval 结构作为睡眠函数的参数吗?我想这样做是因为 timeval 结构可以变得非常精确,因为您可以控制微秒,而我想休眠一定的微秒。我可以这样做吗?

你可以这样做:

struct timeval {long tv_sec; long tv_usec;};

struct timezone {int tz_minuteswest; int tz_dsttime; };    

   struct timeval tp;
   struct timezone tzp;
   int i;

   i = gettimeofday(&tp,&tzp);

并使用它可以实现延迟功能。请参阅 this example

但是,如果您想要精确的延迟,您可以使用使您能够获得更精确延迟的函数,例如 nanosleep()

struct timespec tim, tim2;
tim.tv_sec = 1;
tim.tv_nsec = 1000000000L; //1,000,000,000 nanoseconds = 1 second

nanosleep(&tim , &tim2);
/*code after 1 second sleep*/