当前位置: 技术问答>linux和unix
关于struct timespec的一个问题
来源: 互联网 发布时间:2016-04-19
本文导语: 在看别人的代码,其中有一句nanosleep(0,2),查了下这个函数,原型是 int nanosleep(const struct timespec *rqtp, struct timespec *rmtp) 而timespec定义是 struct timespec { time_t tv_sec; /* seconds * ...
在看别人的代码,其中有一句nanosleep(0,2),查了下这个函数,原型是
int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
而timespec定义是
struct timespec
{
time_t tv_sec; /* seconds *
long tv_nsec; /* nanoseconds *
}
那请问:
1.timespec类型不是包含两个成员么,那怎么能赋值于0或是2呢?
2.nanosleep(0,2)是表示睡多少时间呢?2秒,2纳秒还是其它呢?
int nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
而timespec定义是
struct timespec
{
time_t tv_sec; /* seconds *
long tv_nsec; /* nanoseconds *
}
那请问:
1.timespec类型不是包含两个成员么,那怎么能赋值于0或是2呢?
2.nanosleep(0,2)是表示睡多少时间呢?2秒,2纳秒还是其它呢?
|
如果不被中断(比如信号量等),睡眠10 seconds。如果被中断,可以判断errno是否EINTR,如果是,你可以继续睡眠剩余的时间(甚于的时间保存在nanosleep的第二个参数rem中)。
good luck!