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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章