.Linux C循环获取系统时间
时间: 2024-08-21 11:01:06 浏览: 101
Linux系统操作系统开发案例.pdf
在 Linux 环境下,如果你想通过 C 语言编写程序来持续获取系统时间,你可以利用 `time()` 或者 `gettimeofday()` 函数。以下是两个示例:
1. 使用 `time()` 函数:
```c
#include <stdio.h>
#include <time.h>
int main() {
while (true) {
time_t current_time = time(NULL);
struct tm *timeinfo = localtime(¤t_time);
printf("当前时间: %d-%02d-%02d %02d:%02d:%02d\n",
timeinfo->tm_year + 1900, //转换为公元纪年
timeinfo->tm_mon + 1, //月份从0开始计数
timeinfo->tm_mday,
timeinfo->tm_hour,
timeinfo->tm_min,
timeinfo->tm_sec);
// 按照需要设置刷新频率,这里可以使用sleep函数暂停一段时间
sleep(1); // 每秒获取一次时间
}
return 0;
}
```
2. 使用 `gettimeofday()` 函数获取微秒级精度:
```c
#include <sys/time.h>
#include <unistd.h>
int main() {
struct timeval tv;
fd_set readfds;
while (true) {
gettimeofday(&tv, NULL);
printf("当前时间: %lu.%06lu 秒\n",
tv.tv_sec, tv.tv_usec); // tv_usec是微秒
FD_ZERO(&readfds);
FD_SET(STDIN_FILENO, &readfds);
select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv);
// 如果有输入事件,处理后继续循环;如果没有,则等待一秒后再检查
if (FD_ISSET(STDIN_FILENO, &readfds)) {
process_input();
} else {
usleep(1000 * 1000); // 每秒获取一次时间
}
}
return 0;
}
```
以上代码都会持续获取系统时间并显示出来,`select()` 可以让你在等待用户输入或其他事件的同时节省 CPU 资源。
阅读全文