資料結構是程式設計中很重要的一部分.鍊錶是一種資料結構,程式設計中,我們為了實現鍊錶這種資料結構,常常需要完成他的初始化,新增,遍歷,新增,刪除等功能.針對n多種鍊錶來講,除了內容不同外,但這些 新增,刪除,遍歷操作其實都是可以寫成公共**的,不必每次需要實現一種鍊錶,就重新寫一遍新增,刪除,遍歷的操作,太浪費時間和經歷,且容易出錯.幸運的是,核心有幫我們實現了這種功能,我們只需安心服用便可!
#include
#include
#include
#include
#include
#include
#include
#define employee_num 5
static
struct list_head employee_head;
static
struct list_head *employee_pos = null;
struct employee;
static
struct employee *pemployee = null;
static
struct employee *pemployeetmp = null;
static
int __init list_init(void)
for(i=0;isprintf(pemployee[i].name,"employee-%d",i+1);
pemployee[i].number =100+i;
pemployee[i].salary =20000 +1000*i;
list_add(&(pemployee[i].list),&employee_head);
}list_for_each(employee_pos,&employee_head)
return0;}
static
void list_exit(void)
kfree(pemployee);
}module_init(list_init);
module_exit(list_exit);
module_license("gpl");
現象:
Linux核心學習之鍊錶
文章參照任橋位linux核心修煉之道3.6節編寫。1.鍊錶的定義 這個跟我們在課本上學習的一樣,相當簡單。包括了乙個前項指標,和後項指標。是不是有點不對勁?不錯,竟然沒有資料域!不急,我們慢慢看。struct list head 沒有資料是核心鍊錶的一大特色,因為他採用的方式比較特殊,他不是用鍊錶來...
Linux核心學習之鍊錶
文章參照任橋位linux核心修煉之道3.6節編寫。1.鍊錶的定義 這個跟我們在課本上學習的一樣,相當簡單。包括了乙個前項指標,和後項指標。是不是有點不對勁?不錯,竟然沒有資料域!不急,我們慢慢看。struct list head 沒有資料是核心鍊錶的一大特色,因為他採用的方式比較特殊,他不是用鍊錶來...
Linux核心學習
交叉工具鏈 核心相關知識 linux系統的構成 使用者空間 核心空間 思考 為什麼劃分為兩個層次?目的其實是為保護作業系統,防止應用程式的異常導致作業系統崩潰。核心空間與使用者空間是程式執行的兩種不同狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。那麼linux的核心由哪些構成呢?...