Linux C 容易忽視的錯誤

2021-09-19 07:58:14 字數 1039 閱讀 9066

在使用pthread_attr_setstacksize函式時發現公司的專案全部設定錯誤,且全部沒有檢查返回值,這樣導致了建立執行緒時棧大小設定失敗,系統使用預設的棧大小來進行建立執行緒。

手冊中明確指出,當設定的棧小於16k時,pthread_attr_setstacksize函式可以返回einval錯誤,但是我們專案組以及前一任專案組都沒有發現這個問題,並且也沒人提出疑問,大家都是預設參考別人的**進行使用,例如 8*1024、4*1024 等等,

我給經理提出,經理不以為然,愛搭不理的感覺,大概意思就是說既然沒有設定成功,那我們的執行緒,豈不是全部有問題了?

我們的其中乙個程序有20幾個執行緒

晚飯後我再次提出,並且說明了當前系統的棧設定為128k,依然不以為然。

我覺得此事到此為止了,我把自己負責的**寫好就ok。

我們的專案記憶體比較緊張,去年已經在很多低階錯誤上面花費了很多時間及精力,大家忙於解bug,忙於實現需求,甚至有的問題莫名其妙出現了,莫名其妙又解決了,甚至改了乙個地方,發現有效,就認為問題解決了。

現在的專案成員有10年工作經驗,7-8年工作經驗,3-4年工作經驗,上一任專案組成員最老的有20年左右工作經驗,好幾個十幾年工作經驗的,學歷研究生、本科都有

這個問題讓我很是感慨........

還是要堅持自己的原則,凡是有返回值的函式,必須檢查返回值;凡是可能出錯的函式,必須進行出錯處理;c 庫函式盡量檢視手冊,一來加深記憶,養成好習慣;二來對函式有充分的了解,便於對函式的返回值及功能進行更加靈活的應用;

ok,寫兩行**驗證下,小於16384時使用系統設定的大小128k,大於等於16384時,使用使用者設定的棧大小

我們的arm板子系統設定的是128k,當然,linux 系統預設的是8m

容易忽視的一些安全錯誤

無論網路的規模怎樣,每個網路都面臨著安全問題。比如 保護私有資料不被非法訪問,網路能夠阻擋外來的攻擊行為等等。防病毒軟體 防火牆 ids等措施現在已經不新鮮了,任何企業都明白使用它們保護自己的網路的必要性。甚至的個人pc,病毒和防火牆也已經得到了普及。可是,攻擊仍然每天發生且以攻擊成功的結果在發生。...

容易被忽視的synchronized

public static final synchronized callmanager getinstance return minstance synchronized,多執行緒訪問同步鎖,具有以下特性 1 同一時間只允許乙個執行緒訪問 2 在乙個執行緒訪問synchronized 塊時,另乙個...

Fragment使用容易忽視的問題

這兩天在開發過程中遇到乙個網路訪問時的問題,問題是這樣的 我的乙個fragmentactivity中載入了幾個fragment,每個fragment中的onresume方法中都進行了網路請求,當然,我的網路工具使用了單例模式,在每個fragment中實現了網路工具的監聽介面,這時候我從這個activ...