
LINUX延时函数使用
发布日期:2021-05-07 02:33:01
浏览次数:17
分类:精选文章
本文共 1084 字,大约阅读时间需要 3 分钟。
LINUX 几种常用的延时方式会被信号以及中断打断,如果不对打断进行处理会导致延时时间不精确。
select
void ms_sleep(long lTime){ struct timeval sTime; sTime.tv_sec = lTime/1000; sTime.tv_usec = (lTime%1000)*1000; while (select(0, NULL, NULL, NULL, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}
关于select被打断返回剩余时间网上没有太多的介绍,在man里面有这样一句话
(ii) select() may update the timeout argument to indicate how much time was left. pselect() does not change this argument.
nanosleep
void ms_sleep(long lTime){ struct timespec sTime; sTime.tv_sec = lTime / 1000; sTime.tv_nsec = (lTime % 1000) * 1000000; while (nanosleep(&sTime, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}void us_sleep(long lTime){ struct timespec sTime; sTime.tv_sec = lTime / 1000; sTime.tv_nsec = (lTime % 1000000) * 1000; while (nanosleep(&sTime, &sTime)<0) { if(EINTR != errno) { perror("my_mSleep nanosleep"); break; } }}
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月27日 12时35分12秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Dijkstra算法的总结
2021-05-07
C语言的运算符和表达式
2021-05-07
Vue实现选项卡功能
2021-05-07
vue中接收后台的图片验证码并显示
2021-05-07
Vue入门学习笔记(1)
2021-05-07
趣谈win10常用快捷键
2021-05-07
数学建模更新12(数学线性规划模型1)
2021-05-07
Android,SharedPreferences的使用
2021-05-07
两款用于检测内存泄漏的软件
2021-05-07
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
2021-05-07
OSI 7 层网络模型
2021-05-08
JDK 内置的多线程协作工具类的使用场景
2021-05-08
Java 中哪些对象可以获取类对象
2021-05-08
linux 的 sleep 命令
2021-05-08
11.2.6 时间值的小数秒
2021-05-08
Redis源码分析(七)--- zipmap压缩图
2021-05-08