- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <termios.h>
- #include <errno.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <unistd.h>
- #include "pthread.h"
- #include <netinet/in.h>
- #include <signal.h>
- #include <sys/time.h>
- struct StructOfTimerStatus
- {
- unsigned int count; //计数值
- unsigned int flag; //定时标志
- }
- ;
- struct StructOfTimer
- {
- struct StructOfTimerStatus testtime; //测试定时器
- }
- mytime;
- void SetTimer(int sec,int usec);
- void SigalrmFunc(void);
- //定时器函数
- /*******************************************************************************
- * Discription:SIGALRM 信号响应函数;用作定时器
- * Input :
- * Output :
- *******************************************************************************/
- void SigalrmFunc(void)
- {
- if(mytime.testtime.count++>20) //定时1秒,20*50000=1s
- {
- mytime.testtime.flag=1;
- mytime.testtime.count=0;
- }
- }
- void SetTimer(int sec,int usec)
- {
- struct itimerval value,ovalue;
- signal(SIGALRM,(void *)SigalrmFunc);
- value.it_value.tv_sec = sec;
- value.it_value.tv_usec = usec;
- value.it_interval.tv_sec = sec;
- value.it_interval.tv_usec = usec;
- setitimer(ITIMER_REAL,&value,&ovalue);
- }
- int main(int argc, char **argv)
- {
- SetTimer(0, 50000);
- while(1)
- {
- if(mytime.testtime.flag == 1)
- {
- mytime.testtime.flag = 0;
- system("clear");
- printf("Timing success\\n");
- }
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/0910201410579.html
来源: http://www.codesnippet.cn/detail/0910201410579.html