2010-01-29 95 views

回答

2

由于Mac OS X是基于Unix的,请尝试gettimeofday()。它将返回秒和微秒,直到系统时钟的分辨率。

#include <sys/types.h>  
int gettimeofday(struct timeval *tv, struct timezone *tz); 

struct timeval { 
    time_t  tv_sec;  /* seconds */ 
    suseconds_t tv_usec; /* microseconds */ 
}; 
2

gettimeofday()将主要工作正常,但它受到异常,例如,当用户更改系统日期/时间时。更好的方法是这样的:

#include <CoreServices/CoreServices.h> 

unsigned long long GetTimeSinceBootInMilliseconds() 
{ 
    UnsignedWide uw = AbsoluteToNanoseconds(UpTime()); 
    return ((((unsigned long long)uw.hi)<<32)|(uw.lo))/1000000; 
} 

注意,此函数的返回值将是毫秒,自启动,所以如果你想毫秒,因为程序启动,程序启动时调用此方法一次,存储该值,并从后面的结果中减去它。