这可能是一个经常重复的问题,对不起再把它带回来。我无法找到解决方案:(。我正在Linux中用C语言编写VM监控代码。我希望每隔10秒获取所有VM的读写次数。是否有任何C库提供此功能(定时器)单独),阻塞/非阻塞计时器无关紧要。谢谢!!
此致 Sethu
答案 0 :(得分:7)
对于非阻塞计时器(在POSIX系统上),请使用alarm
:
int main(void) {
signal(SIGALRM, monitor);
monitor(0);
/* ... */
}
void monitor(int signal) {
/* ... */
alarm(10);
}
但是对于阻止计时器,请按 lalli 所述使用sleep
。
答案 1 :(得分:1)
sleep(10);
将使线程在unix系统中休眠10秒。在带有监控代码的循环中使用它,你很高兴。如果您使用Windows作为主机进行监控,则睡眠功能将在几毫秒内接受。
此外,由于需要多线程/多处理,实现将根据操作系统/平台而有所不同。