当前位置: 首页 > news >正文

【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

http://www.lryc.cn/news/268910.html

相关文章:

  • Android 13 - Media框架(28)- MediaCodec(三)
  • Azure 学习总结
  • 数据库是否可以直接作为数据仓库的数据源
  • IntelliJ IDE 插件开发 | (四)开发一个时间管理大师插件
  • 【ChatGPT 默认强化学习策略】PPO 近端策略优化算法
  • 【银行测试】金融银行-理财项目面试/分析总结(二)
  • 张江智荟毁约offer
  • ubuntu 系统终端颜色设置
  • 【Vue】class与style绑定
  • 大厂前端面试题总结(百度、字节跳动、腾讯、小米.....),附上热乎面试经验!
  • EXPLORING DIFFUSION MODELS FOR UNSUPERVISED VIDEO ANOMALY DETECTION 论文阅读
  • 当 ML 遇到 DevOps:如何理解 MLOps
  • vue+element+springboot实现多张图片上传
  • react使用useState更新数组失败
  • 《LIO-SAM阅读笔记》3.后端优化
  • mac下jd-gui提示没有找到合适的jdk版本
  • FlinkSQL窗口实例分析
  • 18-网络安全框架及模型-信息系统安全保障模型
  • Android 提取(备份)apk(安装包)
  • gRPC-Go基础(4)metadata和超时设置
  • 语言模型:从n-gram到神经网络的演进
  • docker compose 部署 grafana + loki + vector 监控kafka消息
  • kubeadm创建k8s集群
  • 鸿蒙开发之android对比开发《基础知识》
  • 2702 高级打字机
  • yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测-附代码和原理
  • Qt学习:Qt的意义安装Qt
  • Anylogic Pro 8.8.x for Mac / for Linux Crack
  • ROS无人机初始化GPS定位漂移误差,确保无人机稳定飞行
  • k8s网络类型