linux内核传字符串函数,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

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 ...

随机推荐

SQL Server基础知识

1.SQL Server表名为什么要加方括号? 这个不是必须要加,但表名或字段名如果引用了sqlserver中的关键字,数据库会不识别这到底是关键字还是表名(或字段名)时就必须要加. 比如,一个表名叫 ...

NYOJ题目20吝啬的国度

-----------------------------------------n-1条边的无向连通图是一棵树,又因为树上两点之间的路径是唯一的,所以解是唯一的.(注意并不一定是二叉树,所以最好采用 ...

Python环境安装

Windows: 1.Python安装包下载 可以去官网下载安装包:https://www.python.org/downloads/ 2.Python安装 默认安装路径:C:\python27:也可 ...

PHP中通过加号合并数组

通常,我们合并多个数组用的是array_merge()函数,其实,PHP手册中关于数组操作符的介绍给了我们更简单的方法,那就是"+"号,看看下面的例子就明白了(详细了解) 代码: ...

golang 之 defer(统计函数执行时间)

package main import ( "fmt" "time" ) func sum(a ...int) int { defer trace(" ...

Django学习笔记(1)--第一个项目

操作系统:Windows Python版本:python3.6 前置工作: pip install virtualenvwrapper #安装虚拟环境管理包 1.创建虚拟环境 mkvirtualenv ...

Jmeter单个长连接发送多个Sample

Mark自:https://blog.csdn.net/lykangjia/article/details/16337505 1. 线程组,在我们测试方案里面,每个线程模拟一个用户,执行用户的登录.等 ...

【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~

javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this   一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...

关于php-fpm方式和apache配合使用的几点记录

1.apache2.4以后可以编译单独的模块可以使用fastcgi和phpfpm进行配合,打开以下的模块即可 LoadModule proxy_module modules/mod_proxy.so ...

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值