-1

タイマーが必要なので、ミリ秒ごとに中断するタイマーを作成する方法を教えてください。次に、ミリ秒をカウントする変数を作成し、20 ミリ秒ごとにメインの機能?

4

1 に答える 1

0

他に何もすることがない場合は、20 ミリ秒待機してから何かを実行し、もう一度待機します。次のアプローチが実行されます。

#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
  while (1)
  {
    struct timeval tv = {0, 20000}; /* 0 seconds, 20000 micro secs = 20 milli secs */

    if (-1 == select(0, NULL, NULL, NULL, &tv))
    {
      if (EINTR == errno)
      {
        continue; /* this means the process received a signal during waiting, just start over waiting. However this could lead to wait cycles >20ms and <40ms. */
      }

      perror("select()");
      exit(1);
    }

    /* do something every 20 ms */
  }

  return 0;
}
于 2013-06-28T06:49:12.330 に答える