2、运行下面的程序:
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char* argv[])
{
time_t timer = time(NULL);
struct tm* t = localtime(&timer); //2038年以后这里返回0,2037年则正常
char m_szFile[128];
strftime(m_szFile, sizeof(m_szFile), "Lsd%Y%m%d.log", t) ; //t = 0,这里就崩溃了
...
}
3、2037年则可以,2038年以后就不行了,Why?
3 个解决方案
#1
这是微软的BUG,正常!你可以跟踪调试一下!
#2
怎么解决比较好?
#3
就是这样的
用这个吧:
tm tm_data;
_getsystime(&tm_data);
用这个吧:
tm tm_data;
_getsystime(&tm_data);
#1
这是微软的BUG,正常!你可以跟踪调试一下!
#2
怎么解决比较好?
#3
就是这样的
用这个吧:
tm tm_data;
_getsystime(&tm_data);
用这个吧:
tm tm_data;
_getsystime(&tm_data);