2012-04-27 29 views
0

我使用setitimer函數爲了設置ITIMER_VIRTUAL定時器,使用指針struct itimerval。這是一個虛擬計時器(只有當過程有控制時才運行),並在信號到達零點時發送一個SIGVTALRM信號。 我的問題是 - 在撥打setitimer後,有什麼方法可以禁用活動計時器,所以當計時器結束時這個信號不會關閉?或者是現在忽略它的唯一方法是設置SIGNAL MASK命令程序忽略該信號?禁用活動itimer

謝謝!

回答

0

根據手冊頁,再次調用setitimer(),使用相同的定時器句柄和itimerval結構的it_value字段設置爲零。

可以immeditately禁用它:

it_value設置爲0,應禁用計時器,無論it_interval的價值。

或之後下一個火災:it_interval設置爲0的下一次期滿之後應禁用計時器

(假定it_value的非零)。

+0

謝謝你的回答。原來我的問題是由於嘗試通過調用'setitimer()'使用不同的'struct itimerval',並將其'it_value'設置爲零來禁用計時器而引起的。相反,我應該將原來的struct itimerval的'it_value'改爲零,並重置'setitimer()'函數。 – Mosheke 2012-04-27 15:41:14

0

撥打settimer並設置it_value0停止計時器。