函数名 | 功能 | 函数形成 | 参数 | 描述 |
list_add | 增加一个新元素 | void list_add (struct list_head * new, struct list_head * head) | new为要增加的新元素,head为增加以后的链表头 | 在指定的头元素后插入一个新元素,用于栈的操作。 |
list_add_tail | 增加一个新元素 | void list_add_tail (struct list_head * new, struct list_head * head); | new为要增加的新元素,head为增加以前的链表头 | 在指定的头元素之前插入一个新元素,用于队列的操作。 |
list_del | 从链表中删除一个元素 | void list_del (struct list_head * entry); | entry为要从链表中删除的元素 | |
list_del_init | 从链表删除一个元素,并重新初始化链表 | void list_del_init (struct list_head * entry) | entry为要从链表中删除的元素 | |
list_empty | 测试一个链表是否为空 | int list_empty (struct list_head * head) | head为要测试的链表 | |
list_splice | 把两个链表合并在一起 | void list_splice (struct list_head * list, struct list_head * head) | list为新加入的链表,head为第一个链表 | |
list_entry | 获得链表中元素的结构 | list_entry ( ptr, type, member) | ptr为指向list_head的指针,type为一个结构体,而member为结构type中的一个域,其类型为list_head。 | |
list_for_each | 扫描链表 | list_for_each ( pos, head) | pos为指向list_head的指针,用于循环计数,head为链表头。 |
基本C库函数
当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。
|
类别 | 函数名 | 功能 | 函数形成 | 参数 | 描述 |
字符串转换 | simple_strtol | 把一个字符串转换为一个有符号长整数 | long simple_strtol (const char * cp, char ** endp, unsigned int base) | cp指向字符串的开始,endp为指向要分析的字符串末尾处的位置,base为要用的基数。 | |
simple_strtoll | 把一个字符串转换为一个有符号长长整数 | long long simple_strtoll (const char * cp, char ** endp, unsigned int base) | cp指向字符串的开始,endp为指向要分析的字符串末尾处的位置,base为要用的基数。 | ||
simple_strtoul | 把一个字符串转换为一个无符号长整数 | long long simple_strtoul (const char * cp, char ** endp, unsigned int base) | cp指向字符串的开始,endp为指向要分析的字符串末尾处的位置,base为要用的基数。 | ||
simple_strtoull | 把一个字符串转换为一个无符号长长整数 | long long simple_strtoull (const char * cp, char ** endp, unsigned int base) | cp指向字符串的开始,endp为指向要分析的字符串末尾处的位置,base为要用的基数。 | ||
vsnprintf | 格式化一个字符串,并把它放在缓存中。 | int vsnprintf (char * buf, size_t size, const char * fmt, va_list args) | buf为存放结果的缓冲区, size为缓冲区的大小,fmt为要使用的格式化字符串,args为格式化字符串的参数。 | ||
snprintf | 格式化一个字符串,并把它放在缓存中。 | int snprintf (char * buf, size_t size, const char * fmt, ... ...) | buf为存放结果的缓冲区, size为缓冲区的大小,fmt为格式化字符串,使用@…来对格式化字符串进行格式化,…为可变参数。 | ||
vsprintf | 格式化一个字符串,并把它放在缓存中。 | int vsprintf (char * buf, const char * fmt, va_list args) | buf为存放结果的缓冲区, size为缓冲区的大小,fmt为要使用的格式化字符串,args为格式化字符串的参数。 | ||
sprintf | 格式化一个字符串,并把它放在缓存中。 | int sprintf (char * buf, const char * fmt, ... ...) | buf为存放结果的缓冲区, size为缓冲区的大小,fmt为格式化字符串,使用@…来对格式化字符串进行格式化,…为可变参数。 |