0
タイマーは一定期間後に開始します。 最初のタイマーハンドラが呼び出されるためには、少なくともtimer.it_value.tv_sec秒待たなければなりません。 私はsetitimer関数の直後に呼び出されるようにしたい。すぐにタイマーを開始するには
timer.it_value.tv_sec = 0に設定すると、タイマーが停止します。
タイマーを使用してオン/オフメカニズムを実装しようとしています。
timer.it_value.tv_sec = 0; // If I do this timer stops
timer.it_value.tv_usec = 0;
timer.it_interval.tv_sec = 2;
timer.it_interval.tv_usec = 0;
setitimer (ITIMER_REAL, &timer, NULL);
だから、すぐに実行するために、私は 、1 = timer.it_value.tv_usecを設定しているが、それは以下のように1マイクロ秒の遅延がかかります。
timer.it_value.tv_sec = 0;
timer.it_value.tv_usec = 1;// Here it is
timer.it_interval.tv_sec = 2;
timer.it_interval.tv_usec = 0;
setitimer (ITIMER_REAL, &timer, NULL);
他の方法はありますか?あなたは2秒ごとに最初の場合を除き、タイマーを有効にする場合
'it_value.tv_sec'を必要な秒数に設定してから、*明示的に*タイマーハンドラ関数を呼び出すのはなぜですか?タイマハンドラ関数を明示的に呼び出すことは、タイマが経過したことと同じです。 –
ええと^^^^なぜそれを呼び出さないのですか? –