nanosleep函数用于将当前线程挂起一段指定的时间。
其用法如下:
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);
参数说明:
- req:指定挂起的时间长度,以纳秒为单位。要挂起的时间长度由结构timespec表示,其中成员tv_sec表示秒数,tv_nsec表示纳秒数。
- rem:如果挂起被其它信号中断,函数调用结束时,将返回未挂起的时间长度。这个参数可以为NULL。
返回值:
- 如果挂起时间达到指定的时间长度,则返回0;
- 如果挂起被其它信号中断,返回剩余的时间长度;
- 如果发生错误,返回-1,并设置errno变量来指明错误原因。
注意:
- nanosleep函数是相对精确的,但精确性取决于系统的时钟分辨率。
- req参数指定的时间长度必须是正数,否则nanosleep函数将返回EINVAL错误。
- rem参数不是必须的,如果不需要获取剩余时间,则可以将其设置为NULL。