我有这个问题: 我已经创建了一个使用itimerspec结构的结构。该itimerspec结构有两个字段:float value in - struct itimerspec
struct timespec {
time_t tv_sec; /* Seconds */
long tv_nsec; /* Nanoseconds */
};
struct itimerspec {
struct timespec it_interval; /* Timer interval */
struct timespec it_value; /* Initial expiration */
};
所以,当我进入:
enter code here
struct itimerspec its; // argument to timer_gettime
/* Setting timer interval */
its.it_interval.tv_sec=0;
its.it_interval.tv_nsec=1;
/* Setting timer expiration */
its.it_value.tv_sec=0.1; // First expiry after 1 sec
its.it_value.tv_nsec=0;
On compilation:
prototype1.cc:115: warning: converting to ‘__time_t’ from ‘double’
我的问题是:按照设计,用户可以在全数字(1进入计时器到期,2 ,3等),但也可以输入时间如0.1秒,o.2秒等,但仅在几秒钟内。
好吧,你的意思是0.1秒= 10 ^(8)nsecs。这是可以接受的解决方案。但是,有没有直接的方式来填补这一点? – kingsmasher1 2011-03-28 06:41:15
@ kingsmasher1:timespec允许您以毫微秒的精度指定任何时间。只需输入秒和纳秒分别为tv_sec和tv_nsec。 – rturrado 2011-03-28 06:53:38
请参阅此链接:http://stackoverflow.com/questions/5457489/second-to-nanosecond-struct-itimerspec。我现在正面临一个新问题,使用上述转换。 – kingsmasher1 2011-03-28 10:18:06