今天刚到办公室,被告知北京移动LBS短信服务程序出问题了,现象是不断重启;原来老程序没问题,更换后17号的新程序无法正常服务;仔细分析了日志,发现昨天服务到23.59.55秒,估计是切换到今天后,处理日期出问题了,先怀疑是更换日志文件出问题,但其他服务是正常的;只好本地跟踪一下了. 最后确定错误是因为asctime函数调用出问题了:
struct tm t;
_getsystime(&t);
t.tm_year += 1900;
t.tm_mon++;
char* cur = asctime(&t);
跟踪进去发现是t参数的问题,调用之前不该有下面的修改:
t.tm_year += 1900;
t.tm_mon++;
直接调用就可以了,否则不仅会出错,结果也是错误的.