代码示例_Timer

Timer


 

 

1.setitimer.c

复制代码
#include <stdio.h>
#include <signal.h>
#include <sys/time.h>
#include <errno.h>
#include <stdlib.h>


struct itimerval timer;

void Time_Fun(int temp)
{
    printf("Time_Fun text ok!\n");
}


int main(void)
{
    signal(SIGALRM, Time_Fun);          //信号处理函数
    
    timer.it_value.tv_sec      =0;        //设置定时器后间隔多久开始执行定时任务
    timer.it_value.tv_usec     =1;
    timer.it_interval.tv_sec   =1;        //两次定时任务之间的时间间隔
    timer.it_interval.tv_usec  =0;    
    if( setitimer(ITIMER_REAL,&timer,NULL)<0 ){
        perror("setitimer failed !\n");
        exit(0);
    }

    for(;;){}
    
    return 0;
}

复制代码

 

 

2.alarm.c

复制代码
#include <stdio.h>
#include <unistd.h>
#include <signal.h>


void Time_Fun(int temp)
{
    printf("Time_Fun text ok!\n");
    alarm(1);   //覆盖前一个
}


int main(void)
{
    signal(SIGALRM, Time_Fun); //信号处理函数
    alarm(1);
    
    for(;;){}
    
    return 0;
}
复制代码

 

 

 

3.sleep.c

复制代码
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <string.h>


void Time_Fun(int temp)
{
    printf("Time_Fun text ok!\n");
}


int main(void)
{
    signal(SIGALRM, Time_Fun);    //信号处理函数
    for(;;){
        kill(getpid(),SIGALRM);      //信号发送函数
        sleep(1);
    }
    
    return 0;
}
复制代码

 

posted @   panda_w  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示