2010-01-29 96 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; 
} 

注意,此函數的返回值將是毫秒,自啓動,所以如果你想毫秒,因爲程序啓動,程序啓動時調用此方法一次,存儲該值,並從後面的結果中減去它。