我有這個問題: 我已經創建了一個使用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