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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM