在C语言中,可以使用<unistd.h>
头文件中的sleep()
函数来实现简单的定时器功能。
sleep()
函数用于使程序暂停执行一段时间,参数是要暂停的秒数。可以通过循环调用sleep()
函数来实现定时器的功能。例如,以下代码将每隔1秒输出一次"Timer",共输出5次:
#include <stdio.h>
#include <unistd.h>
int main() {
int i;
for (i = 0; i < 5; i++) {
printf("Timer\n");
sleep(1);
}
return 0;
}
此外,如果需要更精确的定时器功能,可以使用<sys/time.h>
头文件中的gettimeofday()
函数来获取当前时间,然后计算时间间隔来实现定时器功能。例如,以下代码将每隔1秒输出一次"Timer",共输出5次:
#include <stdio.h>
#include <sys/time.h>
int main() {
struct timeval start_time, current_time;
gettimeofday(&start_time, NULL);
int i;
for (i = 0; i < 5; i++) {
printf("Timer\n");
gettimeofday(¤t_time, NULL);
while ((current_time.tv_sec - start_time.tv_sec) < 1) {
gettimeofday(¤t_time, NULL);
}
start_time = current_time;
}
return 0;
}
这样就可以在更精确的时间间隔内实现定时器功能。