博客
关于我
linux内核里的字符串转换 ,链表操作常用函数(转)
阅读量:429 次
发布时间:2019-03-06

本文共 3166 字,大约阅读时间需要 10 分钟。

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 结尾的字符串  
  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

转载地址:http://lpiyz.baihongyu.com/

你可能感兴趣的文章
一次性搞懂 PHP 中面向对象的所有知识点。
查看>>
将mongo设置为windows的服务
查看>>
Linux 修改环境变量报错
查看>>
【Flink】Flink 底层RPC框架分析
查看>>
【集合框架】JDK1.8源码分析之LinkedList(七)
查看>>
【设计模式】策略模式
查看>>
【设计模式】命令模式
查看>>
Jenkins 集成postman 自动化运行接口测试用例
查看>>
hashlib 简单加密
查看>>
python装饰器实现对异常代码出现进行监控
查看>>
轮评审用例,写用例的重要性-----(python单元测试反思)
查看>>
django+appium实现UI自动化测试平台(开源部分,可定制开发)
查看>>
PAT 1008. Elevator (20)
查看>>
蓝桥杯 密码脱落 LCS
查看>>
第七届C/C++B-方格填数 DFS
查看>>
数据结构课设--3哈夫曼编码译码系统(树应用)
查看>>
pku 1061 青蛙的约会 扩展欧几里得
查看>>
Spring Boot 2.4 配置文件将加载机制大变化
查看>>
WPF之全局快捷键
查看>>
javascript 用函数语句和表达式定义函数的区别
查看>>