日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[trouble shoot]atol和atoll

發布時間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [trouble shoot]atol和atoll 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

就終于的結果來看,事實上就是一個小的錯誤。

但定位錯誤的時間比較漫長了。。

背景:出錯的代碼是 一段執行在 linux server上的程序,程序的主要功能是處理銀行pos刷卡記錄并做一些計算。最后匯總、格式化輸出。

該公司是和銀行打交道的。接的項目都是銀行的。


來公司的第二天(第一天熟悉環境,啥也沒干)老板就給了我一個2000多行的純c程序,一個測試出錯的測試文檔 和 出錯的輸出結果。

因為歷史的原因。。。。。

該段程序經過多人的補補修修,一個沒有頭文件。木有代碼復用,2000多行的一個主文件。

。。

。。

加上我是剛來的不懂業務知識。連測試用例都看不懂,像是在看天書。

我試著用vs打開程序,我靠,無法在windows下執行,里面調用的非常多linux系統中的庫函數。

。。

還好我會linux。我windows下裝有cygwin。竊喜。。

。。

程序執行環境不是問題了,也能夠正常執行。我就開始追蹤bug吧。我也不知道哪里有錯誤啊,我不懂業務知識。也不知道正確結果是啥啊。

。。果斷去問老板,哪里結果不多了。。。。

好了。知道哪里出錯了。接下來就是定位它了。在vim下看代碼。還是不錯的,就當再熟悉熟悉vim了,發現代碼里的變量名 還有函數名我都看不懂啊,發現做程序猿業務知識不能不懂啊。

硬著頭皮啃吧,


找到了一些和錯誤信息相關的變量了,就開始gdb調試了。

。。

。。。。

。。

。。

。。

終于鎖定了問題的出錯地點:atol函數。

。。哈哈 。

該段程序就是處理 的數據 都是 從銀行 獲取的, 比方pos卡消費信息。。。里面都是大數,atol()函數僅僅支持8位啊,換成atoll()就好拉。。

。。

總結:

溢出不會程序不會報錯,僅僅會導致結果不對,一定要注意溢出,接受這次的教訓

轉載于:https://www.cnblogs.com/lytwajue/p/7383935.html

總結

以上是生活随笔為你收集整理的[trouble shoot]atol和atoll的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。