mac os x绝对时间与时钟时间之间转换

// timebase_demo.c

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <mach/mach.h>
#include <mach/mach_time.h>

#define DEFAULT_SLEEP_TIME 1
#define MAXIMUM_SLEEP_TIME 60

int
main(int argc, char **argv)
{
kern_return_t kr;
u_int64_t t1, t2, diff;
double abs2clock;
int sleeptime = DEFAULT_SLEEP_TIME;

mach_timebase_info_data_t info;

kr = mach_timebase_info(&info);
if (kr != KERN_SUCCESS) {
mach_error("mach_timebase_info:", kr);
exit(kr);
}

if (argc == 2) {
sleeptime = atoi(argv[1]);
if ((sleeptime < 0) || (sleeptime > MAXIMUM_SLEEP_TIME))
sleeptime = DEFAULT_SLEEP_TIME;
}

t1 = mach_absolute_time();
sleep(sleeptime);
t2 = mach_absolute_time();
diff = t2 - t1;

printf("slept for %d seconds of clock time\n", sleeptime);
printf("TB increments = %llu increments\n", diff);
printf("absolute-to-clock conversion factor = (%u/%u) ns/increment\n",
info.numer, info.denom);
printf("sleeping time according to TB\n");

abs2clock = (double)info.numer/(double)info.denom;
abs2clock *= (double)diff;

printf("\t= %llu increments x (%u/%u) ns/increment\n\t= %f ns\n\t= %f s\n",
diff, info.numer, info.denom,
abs2clock, abs2clock/(double)1000000000);

exit(0);
}

haidragondeMacBook-Pro:7-41 haidragon$ gcc -Wall -o timebase_demo timebase_demo.c
haidragondeMacBook-Pro:7-41 haidragon$ ls
timebase_demo   timebase_demo.c
haidragondeMacBook-Pro:7-41 haidragon$ ./timebase_demo
slept for 1 seconds of clock time
TB increments = 1002722462 increments
absolute-to-clock conversion factor = (1/1) ns/increment
sleeping time according to TB
    = 1002722462 increments x (1/1) ns/increment
    = 1002722462.000000 ns
    = 1.002722 s
haidragondeMacBook-Pro:7-41 haidragon$ ./timebase_demo 5
slept for 5 seconds of clock time
TB increments = 5003092227 increments
absolute-to-clock conversion factor = (1/1) ns/increment
sleeping time according to TB
    = 5003092227 increments x (1/1) ns/increment
    = 5003092227.000000 ns
    = 5.003092 s
haidragondeMacBook-Pro:7-41 haidragon$ 

原文地址:https://blog.51cto.com/haidragon/2417841

时间: 2024-12-09 16:12:46

mac os x绝对时间与时钟时间之间转换的相关文章

时间之间转换浅尝

1.时间戳->北京时间(1474271425转换2016-09-19 15:50:25)    <script type="text/javascript">    <!--        var otime=1474271425;        formatDate(new Date(otime*1000);        function formatDate(now){            var year=now.getFullYear();     

Java 日期和时间之间转换

┌─────────────┐ │LocalDateTime│────┐ └─────────────┘ │ ┌─────────────┐ ├───>│ZonedDateTime│ ┌─────────────┐ │ └─────────────┘ │ ZoneId │────┘ ▲ └─────────────┘ ┌─────────┴─────────┐ │ │ ▼ ▼ ┌─────────────┐ ┌─────────────┐ │ Instant │<───>│ long │

解决vmware虚拟机安装苹果系统Mac OS X 10.10出现“二进制转换不支持用于Mac OS X”的问题-网络教程与技术 -亦是美网络 - 傲游云浏览器 (beta) 4.9.3.100

解决vmware虚拟机安装苹果系统Mac OS X 10.10出现"二进制转换不支持用于Mac OS X"的问题 发布时间:2015-5-31 昨天给大家详细介绍了如何在VMware 11虚拟机上安装黑苹果系统Mac OS X 10.10,有不少同学按照教程的提示都安装成功了,也有个别同学在安装的过程中遇到了其他的问题,比如网名叫"眼睛."的同学在安装过程中就遇到这样的问题:"二进制转换不支持用于Mac OS X.要运行Mac OS X,你需要一台VMwa

iOS获取网络时间与转换格式

[NSDate date]可以获取系统时间,但是会造成一个问题,用户可以自己修改手机系统时间,所以有时候需要用网络时间而不用系统时间.获取网络标准时间的方法: 1.先在需要的地方实现下面的代码,创建一个URL并且连接 1 NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"]; 2 NSURLRequest *request=[NSURLRequest requestWithURL:url]; 3 NSURLConnection

VMware 12安装虚拟机Mac OS X 10.10使用小技巧(虚拟机Mac OS X 10.10时间设置,虚拟机Mac OS X 10.10通过代理上网,Mac OS X 10.10虚拟机优化,VMware虚拟机相互复制)

1:修改Mac OS 系统时间 2:Mac OS系统 通过代理上网 VMware 12安装Mac OS X 10.10虚拟机优化心得 虚拟显卡硬伤,所以必须要优化下才能用,优化的原则就是能精简的精简,能关特效的就关,不要duang,下面是一些优化设置: 1,从Dock上移除Dashboard 每次不小心点到这个,必然卡机,毛玻璃效果虚拟显卡可吃不消,果断移到垃圾桶,要开应用多的是方法. 2,禁用各种华而不实的透明窗口和动画效果 OS X Yosemite 中大量采用透明菜单.窗口和标题栏,这需要

Mac OS X 背后的故事

Mac OS X 背后的故事 作者: 王越  来源: <程序员>  发布时间: 2013-01-22 10:55  阅读: 25840 次  推荐: 49   原文链接   [收藏] 作者王越,美国宾夕法尼亚大学计算机系研究生,中国著名 TeX 开发者,非著名 OpenFOAM 开发者. Mac OS X 背后的故事(一)力挽狂澜的Ellen Hancock Mac OS X 背后的故事(二)Linus Torvalds的短视 Mac OS X 背后的故事(三)Mach之父Avie Tevan

install Mac OS on Vmware

本文将用详尽的图文介绍如何在虚拟机中安装运行Mac OS X,只要严格地按照本教程一步步操作,即使不了解苹果电脑的读者,也能顺利地安装并运行Mac OS X. 一.准备工作 VMWare 12 Pro百度云:http://pan.baidu.com/s/1hrSuPZe 密码:7qz3360云盘:https://yunpan.cn/c67BiTFmzxpVs 访问密码 21cc Unlocker补丁工具百度云:http://pan.baidu.com/s/1pLLBnf1 密码:pcuu360云

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统 + Parallels Desktop 12 Pro Edition)

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统) 前言 由于学校课程实验的要求,特意需要搭建hadoop的完全分布式系统,所以自己就蛋疼的配了,可惜关于MAC系统的Hadoop搭建材料太少,而且真正的基于校园网的配置基本上没有(基本是在一台电脑上进行,因此当在多台电脑上运行会有许多bug),因此这里想要能够将自己搭的过程想要分享给大家,可能有些配置的解释没有那么全面,所以希望大家见谅?? 环境 基于Mac OSX 10.12.4(Sierra).Ubuntu

Mac OS X ntp服务

Mac OS X系统默认是开启ntp服务的,也就是你可以使用任意一台安装了Mac OS的计算机作为ntp服务器,如果没有开启请参考我之前的这篇博文将其开启:http://asherwang.blog.51cto.com/11255017/1855135:我之前所在的公司就使用一台Macbook pro作为ntp服务器,但有时可能需要进行一些微调才能让它更好的工作. 1.设置好正确的更新源 在你要把它当作ntp服务器之前一定要先检查下它所更新的更新源是否合适,因为我发现有时候Mac OS会将其nt