博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nanosleep纳秒级延迟
阅读量:6411 次
发布时间:2019-06-23

本文共 1107 字,大约阅读时间需要 3 分钟。

//函数原型 int nanosleep(struct timespec *req, struct timespec *rem)//参数列表://  req:要求的睡眠时间//  rem:剩余的睡眠时间//返回值://  0:成功;-1,失败,errno保存错误代码//目的:纳秒级别的延迟int nano_delay(long delay){    struct timespec req, rem;    long nano_delay = delay;    int ret = 0;    while(nano_delay > 0)    {            rem.tv_sec = 0;            rem.tv_nsec = 0;            req.tv_sec = 0;            req.tv_nsec = nano_delay;            if(ret = (nanosleep(&req, &rem) == -1))            {                printf("nanosleep failed.\n");                            }            nano_delay = rem.tv_nsec;    };    return ret;}//测试,纳秒级延迟的误差率int main(){    int ret = 0;    long delay = 0;    struct timespec start, end, interv;    for(delay = 1000; delay < 1000*1000; delay+=1000)    {           curr_time(&start);        nano_delay(delay);        curr_time(&end);        diff(&start, &end, &interv);        printf("delay = %ld, real delay = %ld, error = %g.\n", delay, interv.tv_sec * 1000000000 + interv.tv_nsec, (float)(interv.tv_sec * 1000000000 + interv.tv_nsec - delay)/delay );    }}//测试结果://  Duo CPU e8200//  Ubuntu 12.10 Kernel 3.4//

转载地址:http://pgzra.baihongyu.com/

你可能感兴趣的文章
Disruptor-NET和内存栅栏
查看>>
Windows平台ipod touch/iphone等共享笔记本无线上网设置大全
查看>>
播放加密DVD
查看>>
分享Silverlight新鲜事 - Silverlight Firestarter全球会议
查看>>
产品设计体会(3013)项目的“敏捷沟通”实践
查看>>
RHEL6.3基本网络配置(1)ifconfig命令
查看>>
网络诊断工具之—路由追踪tracert命令
查看>>
Java模拟HTTP的Get和Post请求(增强)
查看>>
php 环境搭建(windows php+apache)
查看>>
让虚拟机的软盘盘符不显示(适用于所有windows系统包括Windows Server)
查看>>
Cygwin不好用
查看>>
jQuery插件之验证控件jquery.validate.js
查看>>
[经验]无线鼠标和无线键盘真的不能用了?——雷柏的重生之路~
查看>>
【转】plist涉及到沙盒的一个问题
查看>>
GNU make manual 翻译( 一百四十五)
查看>>
重构之美-走在Web标准化设计的路上[复杂表单]3 9 Update
查看>>
linux中的优先搜索树的实现--prio_tree【转】
查看>>
转载: 打造自己的asp.net验证控件
查看>>
重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
查看>>
git入门与实践【转】
查看>>