linux 间隔时间中断测试

本文介绍了一个使用C语言实现的定时中断程序,通过设置初始等待时间和后续的间隔时间来触发中断。程序利用了POSIX定时器和信号处理机制,能够在指定时间后发送SIGALRM信号并执行相应的处理函数。

该程序可以设置等待某段时间后发生中断,然后再按照要求在固定的时间又触发中断

 

/**
* alarm2.c 带间隔时间中断测试
*/

#include
<stdio.h>
#include
<sys/time.h>
#include
<signal.h>
#define TIME  500
#define VTIME 10   //star time
#define ITIME 1000   //interval time
#define MSG   "----ring----"
#define COUNTS 5
void ring();
void set_ring_time(int,int);
int main(int ac,char *av[])
{
signal(SIGALRM,ring);
set_ring_time(VTIME,ITIME);
while(1)
        pause();  
//等待中断到达
return 0;
}
void ring()
{
static int counts=COUNTS;
printf(
" %s\n",MSG);
if(--counts<=0)
        exit(
1);
}
void set_ring_time(int vtime,int itime)
{
struct itimerval it_time;
long v_sec=vtime/1000;
long v_usec=vtime%1000;
long i_sec=itime/1000;
long i_usec=itime%1000;

it_time.it_interval.tv_sec
=i_sec;
it_time.it_interval.tv_usec
=i_usec;
it_time.it_value.tv_sec
=v_sec;
it_time.it_value.tv_usec
=v_usec;
setitimer(ITIMER_REAL,
&it_time,NULL);
}

 

转载于:https://www.cnblogs.com/ringwang/archive/2009/04/05/1429896.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值