1.对双向链表的具体操作如下:

  1. list_add ———向链表添加一个条目
  2. list_add_tail ———添加一个条目到链表尾部
  3. __list_del_entry ———从链表中删除相应的条目
  4. list_replace———用新条目替换旧条目
  5. list_del_init———从链表中删除条目后重新初始化
  6. list_move———从一个链表中删除并加入为另一个链表的头部
  7. list_move_tail———从一个列表中删除并加入为另一个链表的尾部
  8. list_is_last———测试是否为链表的最后一个条目
  9. list_empty———测试链表是否为空
  10. list_empty_careful———测试链表是否为空并没有被修改
  11. list_rotate_left———向左转动链表
  12. list_is_singular———测试链表是否只有一个条目
  13. list_cut_position———将链表一分为二
  14. list_splice———将两个链表进行合并
  15. list_splice_tail———将两个链表进行合并为一个链表
  16. list_splice_init———将两个链表进行合并为一个链表并初始化为空表
  17. list_splice_tail_init———将两个链表进行合并为一个链表(从尾部合并)并初始化为空表
  18. list_entry———获取条目的结构,实现对container_of 的封装
  19. list_first_entry———获取链表的第一个元素
  20. list_first_entry_or_null———获取链表的第一个元素
  21. list_for_each———遍历链表
  22. list_for_each_prev———反向遍历链表
  23. list_for_each_safe———遍历链表并删除链表中相应的条目
  24. list_for_each_prev_safe———反向遍历链表并删除链表中相应的条目
  25. list_for_each_entry———遍历指定类型的链表
  26. list_for_each_entry_reverse———反向遍历指定类型的链表
  27. list_prepare_entry———准备一个用于list_for_each_entry_continue 的条目
  28. list_for_each_entry_continue———从指定点开始继续遍历指定类型的链表
  29. list_for_each_entry_continue_reverse———从指定点开始反向遍历链表
  30. list_for_each_entry_from———从当前点遍历指定类型的链表
  31. list_for_each_entry_safe———反向遍历指定类型的链表并删除链表中相应的条目
  32. list_for_each_entry_safe_continue———继续遍历链表并删除链表中相应的条目
  33. list_for_each_entry_safe_from———从当前点遍历链表并删除链表中相应的条目
  34. list_for_each_entry_safe_reverse———反向遍历链表并删除链表中相应的条目
  35. list_safe_reset_next———获得下一个指定类型的条目
  36. hlist_for_each_entry———遍历指定类型的单指针表头链表
  37. hlist_for_each_entry_continue———从当前点继续遍历单指针表头链表
  38. hlist_for_each_entry_from———从当前点继续遍历单指针表头链表
  39. hlist_for_each_entry_safe———遍历指定类型的单指针表头链表并删除链表中相应的条目

2.字符串相关

内核中经常会有字符串转换的需要, 其接口如下:

  1. simple_strtoull———变换一个字符串为无符号的long long 型
  2. simple_strtoul———变换一个字符串为无符号的long 型
  3. simple_strtol———变换一个字符串为有符号的long 型
  4. simple_strtoll———变换一个字符串为有符号的long long 型
  5. vsnprintf———格式化一个字符串并放入缓冲区
  6. vscnprintf———格式化一个字符串并放入缓冲区
  7. snprintf———格式化一个字符串并放入缓冲区
  8. scnprintf———格式化一个字符串并放入缓冲区
  9. vsprintf———格式化一个字符串并放入缓冲区
  10. sprintf———格式化一个字符串并放入缓冲区
  11. vbin_printf———解析格式化字符串并将二进制值放入缓冲区
  12. bstr_printf———对二进制参数进行格式化字符串操作并放入缓冲区
  13. bprintf———解析格式化字符串并将二进制值放入缓冲区
  14. vsscanf———从格式化字符串中分离出的参数列表
  15. sscanf———从格式化字符串中分离出的参数列表
  16. kstrtol———变换一个字符串为long 型
  17. kstrtoul———变换一个字符串为无符号的long 型
  18. kstrtoull———变换一个字符串为无符号的long long 型
  19. kstrtoll———变换一个字符串为long long 型
  20. kstrtouint———变换一个字符串为无符号的int 型
  21. kstrtoint———变换一个字符串为int 型

示例:

char buf[]="";
unsigned int rate;
kstrtouint(buf,,&rate); //buf:输入字符串,0:自动识别,也可以是10(10进制)或16(16进制),rate:存放转换后的整形值.
//当没有错误时返回值是0;

3.另外字符串本身的操作接口如下:

  1. strnicmp———长度有限的字符串比较,这里不分大小写
  2. strcpy———复制一个以NULL 结尾的字符串
  3. strncpy———复制一个以NULL 结尾的有限长度字符串
  4. strlcpy———复制一个以NULL 结尾的有限长度字符串到缓冲区中
  5. strcat———在字符串后附加以NULL 结尾的字符串
  6. strncat———在字符串后附加以NULL 结尾的一定长度的字符串
  7. strlcat———在字符串后附加以NULL 结尾的一定长度的字符串
  8. strcmp———比较两个字符串
  9. strncmp———比较两个限定长度的字符串
  10. strchr———在字符串中查找第一个出现指定字符的位置
  11. strrchr———在字符串中查找最后出现指定字符的位置
  12. strnchr———在字符串中查找出现指定字符串的位置
  13. skip_spaces———从字符串中移除前置空格
  14. strim———从字符串中移除前置及后置的空格
  15. strlen———获得字符串的长度
  16. strnlen———获得一个有限长度字符串的长度
  17. strspn———计算一个仅包含可接受字母集合的字符串的长度
  18. strcspn———计算一个不包含指定字母集合的字符串的长度
  19. strpbrk———找到字符集合在字符串第一次出现的位置
  20. strsep———分割字符串
  21. sysfs_streq———字符串比较,用于sysfs
  22. strtobool———用户输入转换成布尔值
  23. memset———内存填充
  24. memcpy———内存复制
  25. memmove———内存复制
  26. memcmp———内存比较
  27. memscan———在内存中找指定的字符
  28. strstr———在一个以NULL 结尾的字符串中找到第一个子串
  29. strnstr———在一个限定长度字符串中找到第一个子串
  30. memchr———找到内存中的字符
  31. memchr_inv———找到内存中的不匹配字符

文章来源http://blog.sina.com.cn/s/blog_b2aa4e080102xw25.html

linux内核里的字符串转换 ,链表操作常用函数(转)的更多相关文章

  1. C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  2. Linux 内核里的数据结构:位图(bitmap)

    注: 本文由 LCTT 原创翻译,Linux中国 荣誉推出 Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图(bitmap))提供了 A ...

  3. Linux 内核里的“智能指针”【转】

    转自:http://blog.jobbole.com/88279/ 众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异 ...

  4. [翻译]Linux 内核里的数据结构 —— 基数树

    目录 Linux 内核里的数据结构 -- 基数树 基数树 Radix tree Linux内核基数树API 链接 Linux 内核里的数据结构 -- 基数树 基数树 Radix tree 正如你所知道 ...

  5. linux c/c++ IP字符串转换成可比较大小的数字

    由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio. ...

  6. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  7. php中文件操作常用函数有哪些

    php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...

  8. Linux内核里的DebugFS

    DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据.类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上, ...

  9. Linux 内核里的数据结构:双向链表

    原文:https://blog.csdn.net/qq_33487044/article/details/78827260 双向链表 Linux 内核自己实现了双向链表,可以在 include/lin ...

随机推荐

  1. Django项目解决跨域问题

    在配置文件INSTALLED_APPS中添加: 'corsheaders', 在MIDDLEWARE中添加: 'corsheaders.middleware.CorsMiddleware', 最后添加 ...

  2. swiper里面几个有用的参数

    概述 这是我自己用swiper和看别人官网源码用swiper总结出来的,供以后开发时参考,相信对其他人也有用. observeParents 有时我们会改变swiper的父级元素,比如页面的resiz ...

  3. 【Spark调优】数据倾斜及排查

    [数据倾斜及调优概述] 大数据分布式计算中一个常见的棘手问题——数据倾斜: 在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或j ...

  4. Java回调机制总结

    调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...

  5. 在linux系统上文件传输的小技巧

    各位做运维的小伙伴,你是不是常常在为文件传到linux服务器上感到头疼呢,我们知道常用的文件传输工具有好多,比如xftp,winscp等,但是有没有比这更简单的呢?当然是有的呢,下面给大家介绍下: y ...

  6. 毕业不到一年,绩效打了个D!

    周末了,和大家来聊聊程序员工作态度的问题. 说说栈长的事迹吧,这是好多年前的事了,那时候,栈长才毕业不到一年,那次绩效打了个D!事后,我很气愤啊,我那时还在博客上写文章怒骂了部门经理,现在想起来,真是 ...

  7. 使用eclipse创建maven+动态web的项目

    windows7操作系统 提前安装java jdk1.8版本+apache-maven-3.3.3+wildfly-10.0.0.Final 1.新建maven项目,到other里面找一下 2.使用默 ...

  8. Java核心技术及面试指南 JDBC部分的面试题总结以及答案

    5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字 ...

  9. oracle 时间日期常用语句及函数

    记录常用时间函数以及处理时间的sql语句 (1)获得系统时间select sysdate from dual; (2)设置时间的格式select to_char(sysdate,'yyyy/MM/dd ...

  10. MySQL(3)---MySQL优化

    MySQL优化 一.单表.双表.三表优化 1.单表    首先结论就是,range类型查询字段后面的索引全都无效 (1)建表 create table if not exists article( i ...