linux核心學習 核心鍊錶

2021-07-24 22:20:03 字數 1192 閱讀 3045

資料結構是程式設計中很重要的一部分.鍊錶是一種資料結構,程式設計中,我們為了實現鍊錶這種資料結構,常常需要完成他的初始化,新增,遍歷,新增,刪除等功能.針對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的核心由哪些構成呢?...