Linux localtime_r函数一个很诡异的问题
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
int test( unsigned int date_time)
{
struct tm curr;
localtime_r((time_t*)&date_time, &curr);
printf("%04d-%02d-%02d\n",curr.tm_year+1900, curr.tm_mon+1, curr.tm_mday);
return 0;
}
int main(int argc, char *argv[])
{
struct tm curr;
unsigned int date_time = 1295899200;
test(date_time);
localtime_r((time_t*)&date_time, &curr);
printf("%04d-%02d-%02d\n",curr.tm_year+1900, curr.tm_mon+1, curr.tm_mday);
return 0;
}
这段代码中,test函数里面输出的是随机数,main函数里面输出的是正常日期
求助大牛,为什么会这样?
2145570974--1699540991-00
2011-01-25