Я использовал этот фрагмент кода для получения метки времени в микросекундах в c/c++. но это не похоже на микросекунду. также я не знаю, есть ли способ отформатировать его.
timeval curTime;
gettimeofday(&curTime, NULL);
int milli = curTime.tv_usec / 1000;
unsigned long micro = curTime.tv_usec*(uint64_t)1000000+curTime.tv_usec;
char buffer [80];
//localtime is not thread safe
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec));
char currentTime[84] = "";
char currentTime2[80] = "";
sprintf(currentTime, "%s:%3d", buffer, milli);
sprintf(currentTime2, "%s:%Lu", buffer, micro);
printf("time %s, hptime %s\n", currentTime, currentTime2);
и какой правильный формат для вывода? Спасибо!
unsigned long micro = curTime.tv_usec*(uint64_t)1000000+curTime.tv_usec;
? Не лучше ли было быunsigned long micro = curTime.tv_sec*(uint64_t)1000000+curTime.tv_usec;
? - person abiessu   schedule 05.03.2014