ut0ut.c Rewrote ut_print_timestamp with localtime_r and in Win GetLocalTime
This commit is contained in:
parent
125b4bd6ba
commit
0703dba10d
@ -57,25 +57,26 @@ ut_print_timestamp(
|
||||
/*===============*/
|
||||
FILE* file) /* in: file where to print */
|
||||
{
|
||||
struct tm* cal_tm_ptr;
|
||||
#ifdef __WIN__
|
||||
SYSTEMTIME cal_tm;
|
||||
|
||||
GetLocalTime(&cal_tm);
|
||||
|
||||
fprintf(file,"%02d%02d%02d %2d:%02d:%02d",
|
||||
(int)cal_tm.wYear % 100,
|
||||
(int)cal_tm.wMonth,
|
||||
(int)cal_tm.wDay,
|
||||
(int)cal_tm.wHour,
|
||||
(int)cal_tm.wMinute,
|
||||
(int)cal_tm.wSecond);
|
||||
#else
|
||||
|
||||
struct tm cal_tm;
|
||||
time_t tm;
|
||||
|
||||
try_again:
|
||||
time(&tm);
|
||||
|
||||
cal_tm_ptr = localtime(&tm);
|
||||
|
||||
memcpy(&cal_tm, cal_tm_ptr, sizeof(struct tm));
|
||||
|
||||
/* In theory localtime may return a wrong result because its return
|
||||
struct is not protected with a mutex */
|
||||
|
||||
if (difftime(tm, mktime(&cal_tm)) > 0.5
|
||||
|| difftime(tm, mktime(&cal_tm)) < -0.5) {
|
||||
|
||||
goto try_again;
|
||||
}
|
||||
localtime_r(&tm, &cal_tm);
|
||||
|
||||
fprintf(file,"%02d%02d%02d %2d:%02d:%02d",
|
||||
cal_tm.tm_year % 100,
|
||||
@ -84,6 +85,7 @@ ut_print_timestamp(
|
||||
cal_tm.tm_hour,
|
||||
cal_tm.tm_min,
|
||||
cal_tm.tm_sec);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
|
Loading…
x
Reference in New Issue
Block a user