我可以将时间间隔作为睡眠参数传递吗?
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*/
我可以传递一个 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*/