linux內核里的字元串轉換 ,鏈表操作常用函數(轉)

来源:https://www.cnblogs.com/lifexy/archive/2018/12/25/10175143.html
-Advertisement-
Play Games

1.對雙向鏈表的具體操作如下: 2.字元串相關 內核中經常會有字元串轉換的需要, 其介面如下: 示例: 3.另外字元串本身的操作介面如下: 文章來源http://blog.sina.com.cn/s/blog_b2aa4e080102xw25.html ...


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • UTC(Coordinated Universal Time)時間:協調世界時,即世界標準時間 GMT(Greenwich Mean Time):格林威治/格林尼治時間 GMT=UTC,均使用秒數來計算。 UTC+時區差=本地時間。 時區差東為正,西為負。 Unix時間戳:電腦中看到的UTC時間都 ...
  • Mac下的date命令是BSD(Berkeley Software Distribution)系的,Linux下date命令是GNU(GNU's Not Unix)系,二者用法有一些區別。 BSD並不特指任何一個BSD衍生版本,而是類UNIX操作系統中的一個分支的總稱。 Mac OS X和iOS實際 ...
  • Redis官網:https://redis.io Redis是完全開源免費的,遵守 "BSD協議" . Redis是一個高性能的 資料庫. @[TOC] Redis具有以下特點 1. 支持數據持久化,可將記憶體中的數據保存至磁碟,重啟後可以再次載入進行使用. 2. 支持五種數據類型. 3. 支持資料庫 ...
  • ArchLinux關機、重啟時出現ACPI錯誤: ACPI中類似 錯誤是因為雙顯卡而導致的,所以解決思路如下: 1. 啟動Archlinux時關閉獨立顯卡,使用集顯。 2. 屏蔽nouveau,安裝nvidia閉源驅動。 ...
  • 查看所有運行中的進程:ps aux | less顯示所有進程: ps -A / ps -e顯示進程的樹狀圖:pstree ...
  • 示範一下如何透過Docker安裝GitLab,也順便將一些常用的東西紀錄一下 作業系統: CentOS 7 安裝Docker CE 1. 先移除系統上預先安裝的Docker舊版本 2. 安裝相關套件 3. 新增Docker 官方的stable 套件庫(repository) 4. 更新yum 的套件 ...
  • 今天使用docker部署asp.net core應用程式時,發現當我們做好基礎鏡像之後需要把鏡像導出到正式環境,因此學習了一下如何從docker中導出鏡像: 1.首先通過docker images命令查看需要導出的鏡像信息 我們要導出容器id為: 47c4890b7bd1的鏡像, 使用 docker ...
  • 系統平臺:android6.0概述Healthd是android4.4之後提出來的一種中介模型,該模型向下監聽來自底層的電池事件,向上傳遞電池數據信息給Framework層的BatteryService用以計算電池電量相關狀態信息,BatteryServcie通過傳遞來的數據來計算電池電量顯示,剩餘 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...