c语言定时器示例分享

 更新时间:2014年04月28日 10:47:11   作者:  
在linux下开发,使用的是C语言。适用于需要定时的软件开发,以系统真实的时间来计算,它送出SIGALRM信号。每隔一秒定时一次

在linux下开发,使用的是C语言。适用于需要定时的软件开发,以系统真实的时间来计算,它送出SIGALRM信号。每隔一秒定时一次

c语言定时器

复制代码 代码如下:

#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;
}

相关文章

  • C++实现Linux下弹出U盘的方法

    C++实现Linux下弹出U盘的方法

    这篇文章主要介绍了C++实现Linux下弹出U盘的方法,实例分析了C++在Linux平台上进行IO操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C++映像劫持后门实例分析

    C++映像劫持后门实例分析

    这篇文章主要介绍了C++映像劫持后门,实例分析了C++映像劫持后门的原理与相关实现技巧,有助于进一步了解后门的原理,需要的朋友可以参考下
    2015-04-04
  • C++ std::make_unique和std::make_shared用法小结

    C++ std::make_unique和std::make_shared用法小结

    本文主要介绍了C++ std::make_unique和std::make_shared用法,使用std::make_unique和std::make_shared能够简化动态分配内存和构造对象的过程,提高代码的安全性和可读性,感兴趣的可以了解一下
    2023-11-11
  • C语言实现自行车管理系统

    C语言实现自行车管理系统

    这篇文章主要为大家详细介绍了C语言实现自行车管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • C语言深入讲解栈与堆和静态存储区的使用

    C语言深入讲解栈与堆和静态存储区的使用

    对大多数C 语言初学者来说,堆栈却是一个很模糊的概念。堆栈是一种数据结构,一个在程序运行时用于存放的地方,相信这可能是很多初学者共同的认识,静态存储区即内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在
    2022-04-04
  • 详解C语言之操作符

    详解C语言之操作符

    这篇文章主要以图文结合的方式为大家详细介绍了C语言的操作符知识,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-11-11
  • C++中const、volatile、mutable使用方法小结

    C++中const、volatile、mutable使用方法小结

    这篇文章主要介绍了C++中const、volatile、mutable使用方法小结,需要的朋友可以参考下
    2020-01-01
  • C语言基础应用处理学生打分 计算时间 最少硬币问题详细过程

    C语言基础应用处理学生打分 计算时间 最少硬币问题详细过程

    很多的问题其实可以用编程来解决作答,本篇文章带你用C语言解决最少硬币问题、计算已经过去了多久、学生成绩自动打分来做基础的训练
    2022-02-02
  • C++中的String的常用函数用法

    C++中的String的常用函数用法

    这篇文章主要介绍了C语言中String的常用函数用法,对学习String的小伙伴有一定的参考价值,感兴趣的小伙伴可以借鉴一下
    2023-03-03
  • c语言10个经典小程序

    c语言10个经典小程序

    c语言的经典程序,学习c语言的初学者可以参考下
    2013-01-01

最新评论