#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
// 定义一个定时器结构体
struct itimerval timer;
// 定义信号处理函数
void handle_alarm(int signum) {
printf("Alarm signal received\n");
}
int main() {
// 设置信号处理函数
signal(SIGALRM, handle_alarm);
// 设置定时器,每隔1秒触发一次SIGALRM信号
timer.it_value.tv_sec = 1; // 第一次触发时间为1秒后
timer.it_value.tv_usec = 0;
timer.it_interval.tv_sec = 1; // 每隔1秒触发一次
timer.it_interval.tv_usec = 0;
// 启动定时器
if (setitimer(ITIMER_REAL, &timer, NULL) != 0) {
perror("setitimer");
exit(EXIT_FAILURE);
}
// 主循环
while (1) {
pause(); // 等待信号
}
return 0;
}
#include <signal.h> 和 #include <unistd.h>:引入必要的头文件,用于信号处理和系统调用。struct itimerval timer;:定义一个定时器结构体,用于设置定时器的时间间隔。void handle_alarm(int signum):定义一个信号处理函数,当接收到 SIGALRM 信号时调用此函数。signal(SIGALRM, handle_alarm);:设置 SIGALRM 信号的处理函数为 handle_alarm。timer.it_value.tv_sec = 1;:设置第一次触发时间为1秒后。timer.it_interval.tv_sec = 1;:设置每次触发的时间间隔为1秒。setitimer(ITIMER_REAL, &timer, NULL);:启动定时器,使用 ITIMER_REAL 类型的定时器。while (1) { pause(); }:主循环中调用 pause() 函数等待信号。上一篇:linux查看开放端口命令
下一篇:linux改文件名
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站