How to get appropriate timestamp in c for logs?

2019-01-28 01:58发布

问题:

I'm creating a client-server application. I want to do some logging.

Server is in C. Now I'm print messages to the terminal. So I'll probably just copy that to sprintf and add timestamp. How can I do that timestamp? It should probably include date, hours, minutes, seconds.

回答1:

#include <time.h>
void timestamp()
{
    time_t ltime; /* calendar time */
    ltime=time(NULL); /* get current cal time */
    printf("%s",asctime( localtime(&ltime) ) );
}

On my PC, it just prints

Wed Mar 07 12:27:29 2012

Check out the whole range of time related functions here http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html



回答2:

Please find the thread safe version of Pavan's answer below.

time_t ltime;
struct tm result;
char stime[32];

ltime = time(NULL);
localtime_r(&ltime, &result);
asctime_r(&result, stime);

Please refer to this for more details.