Wenn Sie anrufen gettimeofday
, erhalten Sie die Anzahl der Sekunden seit EPOCH, sodass Sie nicht time
erneut anrufen müssen . Und wenn Sie die Ausgabe von localtime
als Eingabe von verwenden strftime
, können Sie die Zwischenvariable weglassen (kein sehr nützlicher Punkt). So könnte Ihr Code folgendermaßen geschrieben werden:
timeval curTime;
gettimeofday(&curTime, NULL);
int milli = curTime.tv_usec / 1000;
char buffer [80];
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&curTime.tv_sec));
char currentTime[84] = "";
sprintf(currentTime, "%s:%d", buffer, milli);
printf("current time: %s \n", currentTime);
Ein wichtiger Hinweis, den Sie beachten sollten, ist, dass Funktionen wie localtime
Thread nicht sicher sind und Sie localtime_r
stattdessen besser verwenden sollten .