linux内核里的字符串转换 ,链表操作常用函数(转)
1.对双向链表的具体操作如下:
- list_add ———向链表添加一个条目
 - list_add_tail ———添加一个条目到链表尾部
 - __list_del_entry ———从链表中删除相应的条目
 - list_replace———用新条目替换旧条目
 - list_del_init———从链表中删除条目后重新初始化
 - list_move———从一个链表中删除并加入为另一个链表的头部
 - list_move_tail———从一个列表中删除并加入为另一个链表的尾部
 - list_is_last———测试是否为链表的最后一个条目
 - list_empty———测试链表是否为空
 - list_empty_careful———测试链表是否为空并没有被修改
 - list_rotate_left———向左转动链表
 - list_is_singular———测试链表是否只有一个条目
 - list_cut_position———将链表一分为二
 - list_splice———将两个链表进行合并
 - list_splice_tail———将两个链表进行合并为一个链表
 - list_splice_init———将两个链表进行合并为一个链表并初始化为空表
 - list_splice_tail_init———将两个链表进行合并为一个链表(从尾部合并)并初始化为空表
 - list_entry———获取条目的结构,实现对container_of 的封装
 - list_first_entry———获取链表的第一个元素
 - list_first_entry_or_null———获取链表的第一个元素
 - list_for_each———遍历链表
 - list_for_each_prev———反向遍历链表
 - list_for_each_safe———遍历链表并删除链表中相应的条目
 - list_for_each_prev_safe———反向遍历链表并删除链表中相应的条目
 - list_for_each_entry———遍历指定类型的链表
 - list_for_each_entry_reverse———反向遍历指定类型的链表
 - list_prepare_entry———准备一个用于list_for_each_entry_continue 的条目
 - list_for_each_entry_continue———从指定点开始继续遍历指定类型的链表
 - list_for_each_entry_continue_reverse———从指定点开始反向遍历链表
 - list_for_each_entry_from———从当前点遍历指定类型的链表
 - list_for_each_entry_safe———反向遍历指定类型的链表并删除链表中相应的条目
 - list_for_each_entry_safe_continue———继续遍历链表并删除链表中相应的条目
 - list_for_each_entry_safe_from———从当前点遍历链表并删除链表中相应的条目
 - list_for_each_entry_safe_reverse———反向遍历链表并删除链表中相应的条目
 - list_safe_reset_next———获得下一个指定类型的条目
 - hlist_for_each_entry———遍历指定类型的单指针表头链表
 - hlist_for_each_entry_continue———从当前点继续遍历单指针表头链表
 - hlist_for_each_entry_from———从当前点继续遍历单指针表头链表
 - hlist_for_each_entry_safe———遍历指定类型的单指针表头链表并删除链表中相应的条目
 
2.字符串相关
内核中经常会有字符串转换的需要, 其接口如下:
- simple_strtoull———变换一个字符串为无符号的long long 型
 - simple_strtoul———变换一个字符串为无符号的long 型
 - simple_strtol———变换一个字符串为有符号的long 型
 - simple_strtoll———变换一个字符串为有符号的long long 型
 - vsnprintf———格式化一个字符串并放入缓冲区
 - vscnprintf———格式化一个字符串并放入缓冲区
 - snprintf———格式化一个字符串并放入缓冲区
 - scnprintf———格式化一个字符串并放入缓冲区
 - vsprintf———格式化一个字符串并放入缓冲区
 - sprintf———格式化一个字符串并放入缓冲区
 - vbin_printf———解析格式化字符串并将二进制值放入缓冲区
 - bstr_printf———对二进制参数进行格式化字符串操作并放入缓冲区
 - bprintf———解析格式化字符串并将二进制值放入缓冲区
 - vsscanf———从格式化字符串中分离出的参数列表
 - sscanf———从格式化字符串中分离出的参数列表
 - kstrtol———变换一个字符串为long 型
 - kstrtoul———变换一个字符串为无符号的long 型
 - kstrtoull———变换一个字符串为无符号的long long 型
 - kstrtoll———变换一个字符串为long long 型
 - kstrtouint———变换一个字符串为无符号的int 型
 - kstrtoint———变换一个字符串为int 型
 
示例:
char buf[]="";
unsigned int rate;
kstrtouint(buf,,&rate); //buf:输入字符串,0:自动识别,也可以是10(10进制)或16(16进制),rate:存放转换后的整形值.
//当没有错误时返回值是0;
3.另外字符串本身的操作接口如下:
- strnicmp———长度有限的字符串比较,这里不分大小写
 - strcpy———复制一个以NULL 结尾的字符串
 - strncpy———复制一个以NULL 结尾的有限长度字符串
 - strlcpy———复制一个以NULL 结尾的有限长度字符串到缓冲区中
 - strcat———在字符串后附加以NULL 结尾的字符串
 - strncat———在字符串后附加以NULL 结尾的一定长度的字符串
 - strlcat———在字符串后附加以NULL 结尾的一定长度的字符串
 - strcmp———比较两个字符串
 - strncmp———比较两个限定长度的字符串
 - strchr———在字符串中查找第一个出现指定字符的位置
 - strrchr———在字符串中查找最后出现指定字符的位置
 - strnchr———在字符串中查找出现指定字符串的位置
 - skip_spaces———从字符串中移除前置空格
 - strim———从字符串中移除前置及后置的空格
 - strlen———获得字符串的长度
 - strnlen———获得一个有限长度字符串的长度
 - strspn———计算一个仅包含可接受字母集合的字符串的长度
 - strcspn———计算一个不包含指定字母集合的字符串的长度
 - strpbrk———找到字符集合在字符串第一次出现的位置
 - strsep———分割字符串
 - sysfs_streq———字符串比较,用于sysfs
 - strtobool———用户输入转换成布尔值
 - memset———内存填充
 - memcpy———内存复制
 - memmove———内存复制
 - memcmp———内存比较
 - memscan———在内存中找指定的字符
 - strstr———在一个以NULL 结尾的字符串中找到第一个子串
 - strnstr———在一个限定长度字符串中找到第一个子串
 - memchr———找到内存中的字符
 - memchr_inv———找到内存中的不匹配字符
 
文章来源http://blog.sina.com.cn/s/blog_b2aa4e080102xw25.html
linux内核里的字符串转换 ,链表操作常用函数(转)的更多相关文章
- C语言字符,字符串,字节操作常用函数
		
strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...
 - Linux 内核里的数据结构:位图(bitmap)
		
注: 本文由 LCTT 原创翻译,Linux中国 荣誉推出 Linux 内核中的位数组和位操作 除了不同的基于链式和树的数据结构以外,Linux 内核也为位数组(或称为位图(bitmap))提供了 A ...
 - Linux 内核里的“智能指针”【转】
		
转自:http://blog.jobbole.com/88279/ 众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异 ...
 - [翻译]Linux 内核里的数据结构 —— 基数树
		
目录 Linux 内核里的数据结构 -- 基数树 基数树 Radix tree Linux内核基数树API 链接 Linux 内核里的数据结构 -- 基数树 基数树 Radix tree 正如你所知道 ...
 - linux c/c++ IP字符串转换成可比较大小的数字
		
由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio. ...
 - go语言之进阶篇字符串操作常用函数介绍
		
下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...
 - php中文件操作常用函数有哪些
		
php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...
 - Linux内核里的DebugFS
		
DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据.类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上, ...
 - Linux 内核里的数据结构:双向链表
		
原文:https://blog.csdn.net/qq_33487044/article/details/78827260 双向链表 Linux 内核自己实现了双向链表,可以在 include/lin ...
 
随机推荐
- JavaScript实现页面刷新滚动条位置不变(利用cookie)
			
实验环境:vs2015 asp.net(C#) 主要原理: 1.在页面滚动时或点击按钮时将当前滚动条位置记录到cookie[pos], 2.页面刷新或重载时查询cookie[pos]中的值是否存在,若 ...
 - HashTable使用举例--C#
			
一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中 ...
 - Android X 相关汇总
			
一.说明 官方原文如下: We hope the division between android.* and androidx.* makes it more obvious which APIs ...
 - Eclipse 中 Maven 项目 pom.xml 提示错误 org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
			
从SVN上下载到Eclipse工作空间的项目一直报如下错误,进行一下Maven ---> Update Project... 就不报错了,但是过一会又会报错 查找资料初步确定是Eclipse中自 ...
 - python Event_loop(事件循环)
			
由于GIL全局解释器锁的存在,意味着在任何一个时刻,只有一个线程处于执行状态. (1)执行栈: 因为python是单线程的,同一时间只能执行一个方法,所以当一系列的方法被依次调用的时候,python会 ...
 - linux 下zip的用法实例
			
zip命令可以用来将文件压缩成为常用的zip格式.unzip命令则用来解压缩zip文件. 1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip: # zip -r yasuo ...
 - 2.java面向对象类与类/类与对象之间关系详解
			
继承.实现.依赖.关联.聚合.组合的联系与区别 下面的内容很基础,同时也很简单,但是也很重要. 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功 ...
 - 扒一扒.net、.net framework、mono和Unity
			
zhaichao 标签: .net.net frameworkc#monounity 2017-04-23 14:39 425人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许 ...
 - RESTful规范1
			
RESTful规范 一 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状 ...
 - Linux编程 24 shell编程(结构化 if  [ condition ] 数值比较,字符串比较)
			
一.概述 接着上篇讲的结构化命令,最后讲到了test命令的另一种写法 if [ condition ],它的语法格式如下: --格式如下: if [ condition ] then commands ...