【问题标题】:blocking/non-blocking timer in CC中的阻塞/非阻塞计时器
【发布时间】:2010-10-07 06:33:21
【问题描述】:

这可能是一个经常重复的问题,很抱歉再次提出。我找不到解决方案:(。我正在 Linux 中用 C 语言编写 VM 监视代码。我想每 10 秒获取所有 VM 的读写计数。是否有任何提供此功能的 C 库(计时器单独),阻塞/非阻塞计时器无关紧要。谢谢!

问候, 瑟图

【问题讨论】:

  • 读写计数是什么?哪个平台?

标签: c timer


【解决方案1】:

对于非阻塞计时器(在 POSIX 系统上),使用alarm

int main(void) {
  signal(SIGALRM, monitor);
  monitor(0);
  /* ... */
}

void monitor(int signal) {
  /* ... */
  alarm(10);
}

但对于阻塞计时器,请使用 lalli 所述的sleep

【讨论】:

    【解决方案2】:
    sleep(10);
    

    将使线程在 unix 系统中休眠 10 秒。将它与代码一起循环使用以进行监视,一切顺利。如果你使用windows作为主机进行监控,那么sleep函数会以毫秒为单位接受。

    此外,由于需要多线程/多处理,因此实现会因操作系统/平台而异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多