是-
定义了较早的POSIX标准
usleep(),因此在Linux上可用:
int usleep(useconds_t usec);描述
usleep()函数将调用线程的执行挂起(至少)usec微秒。任何系统活动,处理呼叫所花费的时间或系统计时器的粒度都可能会稍微延长睡眠时间。
usleep()需要 微秒 ,因此您必须将输入乘以1000才能hibernate。
usleep()此后已弃用,随后从POSIX中删除;对于新代码,
nanosleep()首选:
#include <time.h> int nanosleep(const struct timespec *req, struct timespec *rem);描述
nanosleep()暂停调用线程的执行,直到至少*req经过指定的时间,或者传递触发调用调用线程中的处理程序或终止进程的信号为止。结构timespec用于以纳秒精度指定时间间隔。定义如下:
struct timespec {time_t tv_sec; long tv_nsec; };
msleep()使用实施的示例函数
nanosleep(),如果被信号中断则继续睡眠:
#include <time.h>#include <errno.h>int msleep(long msec){ struct timespec ts; int res; if (msec < 0) { errno = EINVAL; return -1; } ts.tv_sec = msec / 1000; ts.tv_nsec = (msec % 1000) * 1000000; do { res = nanosleep(&ts, &ts); } while (res && errno == EINTR); return res;}


