【发布时间】:2010-10-07 06:33:21
【问题描述】:
这可能是一个经常重复的问题,很抱歉再次提出。我找不到解决方案:(。我正在 Linux 中用 C 语言编写 VM 监视代码。我想每 10 秒获取所有 VM 的读写计数。是否有任何提供此功能的 C 库(计时器单独),阻塞/非阻塞计时器无关紧要。谢谢!
问候, 瑟图
【问题讨论】:
-
读写计数是什么?哪个平台?
这可能是一个经常重复的问题,很抱歉再次提出。我找不到解决方案:(。我正在 Linux 中用 C 语言编写 VM 监视代码。我想每 10 秒获取所有 VM 的读写计数。是否有任何提供此功能的 C 库(计时器单独),阻塞/非阻塞计时器无关紧要。谢谢!
问候, 瑟图
【问题讨论】:
对于非阻塞计时器(在 POSIX 系统上),使用alarm:
int main(void) {
signal(SIGALRM, monitor);
monitor(0);
/* ... */
}
void monitor(int signal) {
/* ... */
alarm(10);
}
但对于阻塞计时器,请使用 lalli 所述的sleep。
【讨论】:
sleep(10);
将使线程在 unix 系统中休眠 10 秒。将它与代码一起循环使用以进行监视,一切顺利。如果你使用windows作为主机进行监控,那么sleep函数会以毫秒为单位接受。
此外,由于需要多线程/多处理,因此实现会因操作系统/平台而异。
【讨论】: