asctime 函數出錯

今天剛到辦公室,被告知北京移動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++;
直接調用就可以了,否則不僅會出錯,結果也是錯誤的.

發佈了29 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章