源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c语言定时器示例分享

  • 时间:2020-09-02 19:56 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c语言定时器示例分享
在linux下开发,使用的是C语言。适用于需要定时的软件开发,以系统真实的时间来计算,它送出SIGALRM信号。每隔一秒定时一次 c语言定时器
[u]复制代码[/u] 代码如下:
#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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部