linux核心裡的字串轉換 ,鍊錶操作常用函式

2021-09-12 04:05:47 字數 4071 閱讀 4419

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.字串相關

核心中經常會有字串轉換的需要, 其介面如下:

******_strtoull———變換乙個字串為無符號的long long 型  

******_strtoul———變換乙個字串為無符號的long 型  

******_strtol———變換乙個字串為有符號的long 型  

******_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="115200"; 

unsigned int rate;

kstrtouint(buf,0,&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———找到記憶體中的不匹配字元

文章**

核心字串

實驗任務 給你乙個長度為 n,只包含小寫字母的字串 a0a1a2 an 1 它的核心字串定義 為最短的且包含全部 26 個小寫字母的子串。這樣的子串可能沒有,也可能只有乙個,還有 可能有多個,所以你只需要輸出它的長度,如果沒有這樣的輸出 1 即可。注意 乙個字元 串 a0a1a2 an 1 的子串是...

字串的轉換

數字 布林值等其他資料型別都可以轉換成字串 一般來說,指令碼引擎將根據上下文自動完成這樣的轉換。例如,當把數字或布林形變數傳給希望接收的字串變數的函式時,就會先隱式將該數值轉換成字串,再進行處理 var num 35.00 alert num 如果在賦值語句中要對兩個變數執行加法操作,其中乙個事字串...

字串的轉換

字串轉換 1.數字轉字串 有兩種方法,第一種用string.valueof,第二種先把基本型別裝箱,轉換為類型別 然後使用tostring方法 package test public class lianxi 這裡要注意int型別直接用tostring是不可以的 下面就是字串轉化為數字 可以呼叫in...