我找到了这个片段:
- (time_t)uptime{ struct timeval boottime; int mib[2] = {CTL_KERN,KERN_BOottIME}; size_t size = sizeof(boottime); time_t Now; time_t uptime = -1; (voID)time(&Now); if (sysctl(mib,2,&boottime,&size,NulL,0) != -1 && boottime.tv_sec != 0) { uptime = Now - boottime.tv_sec; } return uptime;}
它成功了.但是,它整整回来了.有什么方法可以获得毫秒数?
解决方法 内核(显然)不会存储其启动时间的更高分辨率时间戳.KERN_BOottIME由the sysctl_boottime
function in bsd/kern/kern_sysctl.c
实现.它调用boottime_sec.
boottime_sec在bsd/kern/kern_time.c
中实现.它调用clock_get_boottime_nanotime,它有一个很有前途的名字.
clock_get_boottime_nanotime在osfmk/kern/clock.c
中实现.硬编码在其nanosecs参数中始终返回0.
以上是内存溢出为你收集整理的正常运行时间iOS Objective-C – 毫秒级精度全部内容,希望文章能够帮你解决正常运行时间iOS Objective-C – 毫秒级精度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)