我想知道是否有任何方法让当前线程在C 中的特定时间间隔内休眠。我在项目中有很多文件,只希望文件中的一个函数在特定时间内休眠,同时可以访问同一文件中的其他函数。下面我想做的事情 -
void otherfunction()
< - 其他程序应该能够在somefunction()休眠时访问otherfunction()。
void somefunction()
{
//sleep for 2sec.
}
答案 0 :(得分:2)
用于睡眠的POSIX函数称为sleep()
。您可以使用秒数作为参数调用它。
答案 1 :(得分:0)
这是一个微秒睡眠功能,用于跨平台睡眠:
void MicroSleep(int n) {
#ifdef WIN32
::Sleep(n);
#else
struct timeval tm;
unsigned long seconds = n/1000;
unsigned long useconds = n%1000;
if (useconds > 1000) { useconds -= 1000; seconds++; }
useconds*=1000; // using usec
tm.tv_sec = seconds;
tm.tv_usec = useconds;
select(0, 0, 0, 0, &tm);
#endif
}