当前位置: 技术问答>linux和unix
C语言程序,软定时器应用的实例
来源: 互联网 发布时间:2015-11-17
本文导语: 各位高手,谁能赐教一个用c语言实现的利用软定时器到一定时间时触发某一个指定函数的范例. | man timer_create alarm signal 或者google timer | 我已经解决这个问题,利用setitimer.谢谢各位...
各位高手,谁能赐教一个用c语言实现的利用软定时器到一定时间时触发某一个指定函数的范例.
|
man timer_create alarm signal
或者google timer
或者google timer
|
我已经解决这个问题,利用setitimer.谢谢各位!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int count = 0;
int temp_a = 0;
char end[12];
int daikuan()
{
int bandwidth;
int b;
b = count;
bandwidth = ((b - temp_a)*10)/5;
temp_a = b;
printf("Hello,------------daikuan!n");
printf("%dn",bandwidth);
return bandwidth;
//return 1;
}
void rtp()
{
while(1)
{
sleep(1);
count++;
}
}
int main()
{
struct itimerval liketimer;
pthread_t id;
signal(SIGALRM,(void (*)(int))daikuan ) ;
printf("Hello,MAIN!n");
pthread_create(&id,NULL,(void*(*)(void*))rtp,NULL);
while(1)
{
liketimer.it_interval.tv_sec = 3; //发送信号的时间间隔(秒)
liketimer.it_interval.tv_usec = 0; //(毫秒)
liketimer.it_value.tv_sec = 1; //开始发送信号的时间 liketimer.it_value.tv_usec = 0;
setitimer(ITIMER_REAL,&liketimer,NULL);
//sleep(5);
scanf("%s",end);
if(!strcmp(end,"exit"))
{
//kill(id);
return 0;
}
}
//return 0;
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int count = 0;
int temp_a = 0;
char end[12];
int daikuan()
{
int bandwidth;
int b;
b = count;
bandwidth = ((b - temp_a)*10)/5;
temp_a = b;
printf("Hello,------------daikuan!n");
printf("%dn",bandwidth);
return bandwidth;
//return 1;
}
void rtp()
{
while(1)
{
sleep(1);
count++;
}
}
int main()
{
struct itimerval liketimer;
pthread_t id;
signal(SIGALRM,(void (*)(int))daikuan ) ;
printf("Hello,MAIN!n");
pthread_create(&id,NULL,(void*(*)(void*))rtp,NULL);
while(1)
{
liketimer.it_interval.tv_sec = 3; //发送信号的时间间隔(秒)
liketimer.it_interval.tv_usec = 0; //(毫秒)
liketimer.it_value.tv_sec = 1; //开始发送信号的时间 liketimer.it_value.tv_usec = 0;
setitimer(ITIMER_REAL,&liketimer,NULL);
//sleep(5);
scanf("%s",end);
if(!strcmp(end,"exit"))
{
//kill(id);
return 0;
}
}
//return 0;
}