【linux】select实现定时器

/*秒级定时器*/
void seconds_sleep(unsigned     long  seconds)
{
    if(seconds == 0) return;
    struct timeval tv;
    tv.tv_sec=seconds;
    tv.tv_usec=0;
    int err;
    do{
       err=select(0,NULL,NULL,NULL,&tv);
    }while(err<0 && errno==EINTR);
}
 
/*毫秒定时器*/
 
void milliseconds_sleep(unsigned long mSec)
{
    if(mSec == 0) return;
    struct timeval tv;
    tv.tv_sec=mSec/1000;
    tv.tv_usec=(mSec%1000)*1000;
    int err;
    do{
       err=select(0,NULL,NULL,NULL,&tv);
    }while(err<0 && errno==EINTR);
}
 
/*微秒定时器*/
 
void microseconds_sleep(unsigned long uSec)
{
    if(uSec == 0) return;
    struct timeval tv;
    tv.tv_sec=uSec/1000000;
    tv.tv_usec=uSec%1000000;
    int err;
    do{
        err=select(0,NULL,NULL,NULL,&tv);
    }while(err<0 && errno==EINTR);
}
 
 
int main()
{
    int i;
    for(i=0;i<5;++i){
    printf("%d\n",i);
    //seconds_sleep(2);
    //milliseconds_sleep(2000);
    microseconds_sleep(2000000);
    }
}

http://gityuan.com/2019/01/05/linux-poll-select/
https://blog.csdn.net/sjp11/article/details/126312199
https://www.cnblogs.com/sctb/p/17400454.html
https://blog.csdn.net/weixin_37926485/article/details/122810971

相关推荐

  1. 【linux】select实现定时器

    2023-12-28 13:18:03       50 阅读
  2. js实现定时器

    2023-12-28 13:18:03       27 阅读
  3. <span style='color:red;'>定时器</span>

    定时器

    2023-12-28 13:18:03      33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 13:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 13:18:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 13:18:03       82 阅读
  4. Python语言-面向对象

    2023-12-28 13:18:03       91 阅读

热门阅读

  1. mac配置subl命令打开sublime

    2023-12-28 13:18:03       50 阅读
  2. 网络安全领域的12个大语言模型用例

    2023-12-28 13:18:03       56 阅读
  3. Spring Boot学习:Flyway详解

    2023-12-28 13:18:03       62 阅读
  4. 机器学习笔记--图的基本表示和特征工程

    2023-12-28 13:18:03       65 阅读
  5. 6、docker 安装mysql8

    2023-12-28 13:18:03       53 阅读
  6. ARMday7

    ARMday7

    2023-12-28 13:18:03      55 阅读
  7. a-range-picker实现默认时间各种时分秒时间要求

    2023-12-28 13:18:03       62 阅读
  8. linux | pause函数 、alarm函数、signal函数

    2023-12-28 13:18:03       50 阅读
  9. Flink导入StarRocks

    2023-12-28 13:18:03       48 阅读