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 ...
随机推荐
- Django项目解决跨域问题
在配置文件INSTALLED_APPS中添加: 'corsheaders', 在MIDDLEWARE中添加: 'corsheaders.middleware.CorsMiddleware', 最后添加 ...
- swiper里面几个有用的参数
概述 这是我自己用swiper和看别人官网源码用swiper总结出来的,供以后开发时参考,相信对其他人也有用. observeParents 有时我们会改变swiper的父级元素,比如页面的resiz ...
- 【Spark调优】数据倾斜及排查
[数据倾斜及调优概述] 大数据分布式计算中一个常见的棘手问题——数据倾斜: 在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或j ...
- Java回调机制总结
调用和回调机制 在一个应用系统中, 无论使用何种语言开发, 必然存在模块之间的调用, 调用的方式分为几种: 1.同步调用 同步调用是最基本并且最简单的一种调用方式, 类A的方法a()调用类B的方法b( ...
- 在linux系统上文件传输的小技巧
各位做运维的小伙伴,你是不是常常在为文件传到linux服务器上感到头疼呢,我们知道常用的文件传输工具有好多,比如xftp,winscp等,但是有没有比这更简单的呢?当然是有的呢,下面给大家介绍下: y ...
- 毕业不到一年,绩效打了个D!
周末了,和大家来聊聊程序员工作态度的问题. 说说栈长的事迹吧,这是好多年前的事了,那时候,栈长才毕业不到一年,那次绩效打了个D!事后,我很气愤啊,我那时还在博客上写文章怒骂了部门经理,现在想起来,真是 ...
- 使用eclipse创建maven+动态web的项目
windows7操作系统 提前安装java jdk1.8版本+apache-maven-3.3.3+wildfly-10.0.0.Final 1.新建maven项目,到other里面找一下 2.使用默 ...
- Java核心技术及面试指南 JDBC部分的面试题总结以及答案
5.5.1 你最近的项目里用到的是哪个数据?或你用过哪些数据库?或你对哪个数据库最熟悉? 通过这个问题,我们将会确认候选人是否在项目里用过数据库或JDBC. 5.5.2 你有没有建过表?或修改表里的字 ...
- oracle 时间日期常用语句及函数
记录常用时间函数以及处理时间的sql语句 (1)获得系统时间select sysdate from dual; (2)设置时间的格式select to_char(sysdate,'yyyy/MM/dd ...
- MySQL(3)---MySQL优化
MySQL优化 一.单表.双表.三表优化 1.单表 首先结论就是,range类型查询字段后面的索引全都无效 (1)建表 create table if not exists article( i ...