gettimeofday()是否保证具有微秒级的分辨率?
我正在将一个最初为Win32 API编写的游戏移植到Linux(很好,是将Win32端口的OS X端口移植到Linux)。 QueryPerformanceCounter自程序启动以来,我已经通过提供uSeconds来实现: BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount) { gettimeofday(&currentTimeVal, NULL); performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec); performanceCount->QuadPart *= (1000 * 1000); performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec); return true; } 再加上QueryPerformanceFrequency()恒定的1000000作为频率,可以在我的机器上很好地工作,并为我提供了一个uSeconds自程序启动以来包含的64位变量。 这是便携式的吗?我不想发现以某种方式或类似方式编译内核时,它的工作原理有所不同。我可以将其移植到Linux以外的其他软件上,这很好。