gettimeofday () в основном будет работать нормально, но это может привести к аномалиям, например, когда пользователь меняет системную дату / время. Лучший способ был бы такой:
#include <CoreServices/CoreServices.h>
unsigned long long GetTimeSinceBootInMilliseconds()
{
UnsignedWide uw = AbsoluteToNanoseconds(UpTime());
return ((((unsigned long long)uw.hi)<<32)|(uw.lo))/1000000;
}
Обратите внимание, что значения, возвращаемые этой функцией, будут в миллисекундах с момента загрузки, поэтому, если вы хотите получить миллисекунды с момента запуска программы, вызовите этот метод один раз при запуске программы, сохраните это значение и вычтите его из более поздних результатов. .