Linux内核中,有许许多多的精妙设计,比如在内核代码中,运用到了大量的【链表】这种数据结构,而在Linux内核中,针对如此多的链表要进行操作,他们分别是如何定义和管理的呢?本文将给你展示,Linux内核中list.h的高效应用。
通过本文的阅读,你将了解到以下内容:
- list.h的全貌
- 如何使用list.h创建单向链表并实现链表的基本操作?
- 如何使用list.h创建双向链表并实现链表的基本操作?
list.h的全貌
以下就是它的全部内容,可能不同版本的linux有些许的差异,但精髓都在这:
#ifndef _LINUX_LIST_H
#define _LINUX_LIST_H
/********** include/linux/list.h **********/
/*
* These are non-NULL pointers that will result in page faults
* under normal circumstances, used to