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 */
|
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;
|
struct tm cal_tm;
|
||||||
time_t tm;
|
time_t tm;
|
||||||
|
|
||||||
try_again:
|
|
||||||
time(&tm);
|
time(&tm);
|
||||||
|
|
||||||
cal_tm_ptr = localtime(&tm);
|
localtime_r(&tm, &cal_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;
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(file,"%02d%02d%02d %2d:%02d:%02d",
|
fprintf(file,"%02d%02d%02d %2d:%02d:%02d",
|
||||||
cal_tm.tm_year % 100,
|
cal_tm.tm_year % 100,
|
||||||
@ -84,6 +85,7 @@ ut_print_timestamp(
|
|||||||
cal_tm.tm_hour,
|
cal_tm.tm_hour,
|
||||||
cal_tm.tm_min,
|
cal_tm.tm_min,
|
||||||
cal_tm.tm_sec);
|
cal_tm.tm_sec);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************
|
/*****************************************************************
|
||||||
|
Loading…
x
Reference in New Issue
Block a user