#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
#define ALARM_SECONDS 1
#define SLEEP_SECONDS 1
//alarm handle
void alarm_handle(int sig);
static unsigned int index = 0;
int main(void)
{
//alarm
signal(SIGALRM,alarm_handle);
struct itimerval value;
value.it_value.tv_sec=ALARM_SECONDS;
value.it_value.tv_usec=0;
value.it_interval.tv_sec=ALARM_SECONDS;
value.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&value,NULL);
while(1)
{
sleep(SLEEP_SECONDS);
}
}
void alarm_handle(int sig)
{
printf("sig=%d,index=%d\r\n",sig,index++);
fflush(stdout);
}
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
#define ALARM_SECONDS 1
#define SLEEP_SECONDS 1
//alarm handle
void alarm_handle(int sig);
static unsigned int index = 0;
int main(void)
{
//alarm
signal(SIGALRM,alarm_handle);
struct itimerval value;
value.it_value.tv_sec=ALARM_SECONDS;
value.it_value.tv_usec=0;
value.it_interval.tv_sec=ALARM_SECONDS;
value.it_interval.tv_usec=0;
setitimer(ITIMER_REAL,&value,NULL);
while(1)
{
sleep(SLEEP_SECONDS);
}
}
void alarm_handle(int sig)
{
printf("sig=%d,index=%d\r\n",sig,index++);
fflush(stdout);
}
本文详细介绍了如何使用C语言中的signal、alarm、setitimer等函数实现定时器功能,并通过信号处理机制来增强程序的响应能力。通过设置ITIMER_REAL定时器,程序能够在指定时间内触发特定的操作,并通过改变信号处理函数来动态调整行为。
539

被折叠的 条评论
为什么被折叠?



