Linux 下的 sleep
最近在阅读 libev 的源码,看到 libev 的代码里面的 sleep 实现, 我觉得可以把这个 sleep 实现单独拿出来,作为参考,以后可以直接拿来用。
代码如下(稍有修改):
void ev_sleep (double delay) {if (delay > 0.){ #if EV_USE_NANOSLEEPstruct timespec ts;//EV_TS_SET (ts, delay);ts.tv_sec = (long)t; ts.tv_nsec = (long)((t - ts.tv_sec) * 1e9);nanosleep (&ts, 0); #elif defined _WIN32Sleep ((unsigned long)(delay * 1e3)); #elsestruct timeval tv;/* here we rely on sys/time.h + sys/types.h + unistd.h providing select *//* something not guaranteed by newer posix versions, but guaranteed *//* by older ones *///EV_TV_SET (tv, delay);tv.tv_sec = (long)t; tv.tv_usec = (long)((t - tv.tv_sec) * 1e6);select (0, 0, 0, 0, &tv); #endif} }
其中的 EV_TS_SET 和 EV_TV_SET 是两个宏定义,我直接把这两个宏展开了。
本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/7143692.html,如需转载请自行联系原作者
Linux 下的 sleep相关推荐
- 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件
过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...
- Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多
Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556 文章- 38 评论- 77 ...
- linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...
- linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6 文章- 2 评论- 2 < ...
- Linux下Flash-LED的处理
Linux下Flash-LED的处理 一些LED设备提供两种模式-torch和flash.在LED子系统中,LED类(参见Linux下的LED处理)和LED Flash类,分别支持这些模式.torch ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- Linux下的C#连接Mysql数据库
今天在尝试在 Linux 系统下使用C#连接数据库,发现网上这方面的信息很少,所以就写一篇博客记录一下. Linux下这里使用的是mono. 首先是缺少Mysql.Data.dll这个库的,所以需要安 ...
- mysql在linux下的安装
mysql在linux下的安装 安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads ...
- linux下find命令的使用和总结
背景:find命令十分的好用,特别是在查找文件的时候,这个时候需要和文件通配符一起使用. 1 前言 我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样&quo ...
最新文章
- 真惨!连各大编程语言都摆起地摊了!
- 热评一箩筐——《黑客攻防技术宝典》
- ecside使用笔记(1)
- python详细安装教程linux-Linux系统如何安装Python?新手教程
- js中String的常用扩展
- php重构ifelse,php - 重构条件语句PHP - SO中文参考 - www.soinside.com
- cv2 画多边形不填充_你不知道的4种方法:python方法绘制扇形
- sql 分组统计_leetcode-sql面试题十七篇精讲合集
- 面向 Web 前端的原生语言总结手册
- 一 VC2008环境中ICE的配置
- NOI2018 Day1 归程(Kruskal重构树)
- 通过配置host文件实现本地域名任意设置
- Prototype使用Form操作表单
- Vultr VPS修改root密码的方法
- 西门子plc vb和c语言区别,西门子plc不同编程语言的区别
- PS线条神器插件Lazy Nezumi Pro(能画出sai般的线条)
- 利用Python使图片完美去除水印,我想试试马赛克的效果∧v∧
- 计算机云开头的词语,“云”字开头的成语大全
- JavaScript-ES6新特性详解
- iphone手机设置自定义铃声(mac环境下设置)