在C语言中,可以使用<time.h>
头文件中的time()
函数来获取当前时间戳,然后通过比较时间戳来实现定时器。
下面是一个简单的示例代码,演示了如何设置一个定时器来每隔1秒输出一次当前时间:
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main() {
time_t start_time = time(NULL); // 获取程序开始时间
time_t current_time;
while (1) {
current_time = time(NULL); // 获取当前时间
if (current_time - start_time >= 1) { // 判断是否已经过了1秒
printf("Current time: %s", ctime(¤t_time));
start_time = current_time; // 更新开始时间
}
usleep(100000); // 暂停100毫秒,避免过多占用CPU资源
}
return 0;
}
上述代码中,使用time()
函数获取当前时间戳,并通过ctime()
函数将时间戳转换成可读的字符串格式。然后设置一个开始时间,每隔1秒判断一次是否已经过了1秒,如果过了1秒则输出当前时间,并更新开始时间。同时使用usleep()
函数暂停100毫秒,以避免过多占用CPU资源。
需要注意的是,上述示例只是一个简单的定时器实现,实际应用中可能需要更加精确的定时器,可以使用更高级的定时器库或操作系统提供的定时器机制。