linux内核⾥的字符串转换,链表操作常⽤函数(转)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[]="115200";
unsigned int rate;
kstrtouint(buf,0,&rate);
//buf:输⼊字符串,0:⾃动识别,也可以是10(10进制)或16(16进制),rate:存放转换后的整形值. //当没有错误时返回值是0;
3.另外字符串本⾝的操作接⼝如下:
1. strnicmp———长度有限的字符串⽐较,这⾥不分⼤⼩写
2. strcpy———复制⼀个以NULL 结尾的字符串
3. strncpy———复制⼀个以NULL 结尾的有限长度字符串
4. strlcpy———复制⼀个以NULL 结尾的有限长度字符串到缓冲区中
5. strcat———在字符串后附加以NULL 结尾的字符串linux字符串转数组
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———到内存中的不匹配字符
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论