重新審視linux核心鍊錶

2021-06-21 10:50:29 字數 327 閱讀 7485

list_for_each_entry_safe 、 list_for_each_entry

list_for_each_safe   、 list_for_each

在函式名上的差別就是前面多乙個safe,大概就是安全遍歷的意思,為什麼會多出這麼乙個函式,在什麼時候用合適呢

當我們用list_for_each_entry進行遍歷的時候,如果遍歷時進行刪除pos操作,就會出現err,這個時候就需要用帶safe的函式來完成遍歷

list_entry/container_of/offsetof 這幾個函式實現的功能,就是通過結構體的成員的相對偏移以及成員的位址,來計算結構體的首位址

linux核心鍊錶

鍊錶是一種常用的資料結構,它通過指標將一系列資料節點連線成一條資料鏈。相對於陣列,鍊錶具有更好的動態性,建立鍊錶時無需預先知道資料總量,可以隨機分配空間,可以高效地在鍊錶中的任意位置實時插入或刪除資料。鍊錶的開銷主要是訪問的順序性和組織鏈的空間損失。一 鍊錶結構 單鏈表結構如下 雙鏈表結構如圖 st...

linux核心鍊錶

include include struct list head struct mylist void list add struct list head new,struct list head prev,struct list head next void list add tail struc...

Linux核心鍊錶

核心鍊錶 核心鍊錶即,我麼在乙個鍊錶中插入或刪除乙個資料,都需要自己編寫 相當的麻煩,怎麼解決這個問題呢,為了更加方便的解決這個問題,linux中就產生了核心鍊錶,以後想要在鍊錶中插入資料或刪除資料時,只需要呼叫函式就可以了。鍊錶對比 鍊錶是一種資料結構,他通過指標將一系列的資料節點連線成一條資料鏈...