linux c语言 定时器
时间: 2023-08-16 11:13:10 浏览: 128
你好!关于在 Linux 上使用 C 语言编写定时器的问题,可以使用 POSIX 定时器来实现。下面是一个简单的示例代码,演示了如何创建和使用定时器:
```c
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <time.h>
void timer_handler(int signum)
{
printf("Timer expired!\n");
}
int main()
{
struct sigaction sa;
struct itimerval timer;
// 设置定时器的处理函数
sa.sa_handler = timer_handler;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sigaction(SIGALRM, &sa, NULL);
// 设置定时器的间隔为1秒
timer.it_value.tv_sec = 1;
timer.it_value.tv_usec = 0;
timer.it_interval.tv_sec = 1;
timer.it_interval.tv_usec = 0;
// 创建定时器
setitimer(ITIMER_REAL, &timer, NULL);
// 循环等待定时器触发
while (1)
{
// 进入睡眠状态,等待信号触发
pause();
}
return 0;
}
```
这个示例代码使用 `setitimer()` 函数来创建定时器,并通过 `SIGALRM` 信号来处理定时器的触发事件。在 `timer_handler()` 函数中,你可以编写你想要执行的任务。在本例中,只是简单地打印一条消息。
希望这个示例对你有所帮助!如有任何疑问,请随时提问。
阅读全文