1. 程式人生 > >Linux核心中提供的一些字串轉換函式

Linux核心中提供的一些字串轉換函式

原文地址:http://blog.csdn.net/zhangzhaocap/article/details/7230067

lib/vsprintf.c

[cpp] view plain copy print?
  1. unsigned longlong simple_strtoull(constchar *cp, char **endp, unsigned int base)  
  2. unsigned long simple_strtoul(constchar *cp, char **endp, unsigned int base)  
  3. long simple_strtol(constchar *cp, char
     **endp, unsigned int base)  
  4. longlong simple_strtoll(constchar *cp, char **endp, unsigned int base)  
  5. int strict_strtoul(constchar *cp, unsigned int base, unsigned long *res)  
  6. int strict_strtol(constchar *cp, unsigned int base, long *res)  
  7. int strict_strtoull(constchar *cp, unsigned int base, unsigned 
    longlong *res)  
  8. int strict_strtoll(constchar *cp, unsigned int base, longlong *res)  
  9. int sprintf(char *buf, constchar *fmt, ...)  
  10. int snprintf(char *buf, size_t size, constchar *fmt, ...)  
  11. int sscanf(constchar *buf, constchar *fmt, ...)  

unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)
功能:將一個字串轉換成unsigend long long型資料。
返回:返回轉換後資料。
引數:cp指向字串的開始,endp指向分析的字串末尾的位置,base為要用的基數(進位制數),base為0表示通過cp來自動判斷基數,函式自動可識別的基數:‘0x’表示16進位制,‘0’表示8進位制,其它都認定為10進位制。函式可轉換成數字的有效字元為:[0,f]。舉例:cp = “0x12str”,base = 0,則返回unsigned long long為18,*endp = “str”。 引數下同。

unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base)
功能:將一個字串轉換成unsigend long型資料。
返回:返回轉換後資料。

long simple_strtol(const char *cp, char **endp, unsigned int base)
功能:將一個字串轉換成sigend long型資料。
返回:返回轉換後資料。
說明:該函式呼叫simple_strtoul,但它先會判斷cp指向的字串的第一個字元是否為負號‘-’。如果為‘-’,它返回負的simple_strtoul的結果。

long long simple_strtoll(const char *cp, char **endp, unsigned int base)
功能:將一個字串轉換成sigend long long型。
返回:返回轉換後資料。

int strict_strtoul(const char *cp, unsigned int base, unsigned long *res)
功能:將一個字串轉換成unsigend long型。
返回:轉換成功返回0,否則返回負。res指向轉換後的unsigned long資料。
說明:該函式對cp指向的字串嚴格要求,cp指向的字串必須為真正的unsigned long形式的字串。字串必須以“0x”、“0”、[0,f]開始,中間全部為有效的字元[0,f],否則返回為負。它會處理字串最後的“\n”字元。下同。

int strict_strtol(const char *cp, unsigned int base, long *res)
功能:將一個字串轉換sigend long型。
返回:轉換成功返回0,否則返回負。res指向轉換後的signed long資料。

int strict_strtoull(const char *cp, unsigned int base, unsigned long long *res)
功能:將一個字串轉換unsigend long long型。
返回:轉換成功返回0,否則返回負。res指向轉換後的unsigned long long資料。

int strict_strtoll(const char *cp, unsigned int base, long long *res)
功能:將一個字串轉換sigend long long型。
返回:轉換成功返回0,否則返回負。res指向轉換後的signed long long資料。

int sprintf(char *buf, const char *fmt, ...)
功能:格式化輸出字串,類似於printf,只是用字串buf作為輸出物件。
返回:返回寫入buf字串的字元個數。

int snprintf(char *buf, size_t size, const char *fmt, ...)
功能:格式化輸出字串,類似於printf,只是用字串buf作為輸出物件。其中size為buf的大小(包括‘\0’字元)。
返回:返回寫入buf字串的字元個數。

int sscanf(const char *buf, const char *fmt, ...)
功能:格式化輸入字串,類似於scanf,只是用字串buf作為輸入物件。
返回:返回讀取buf字串的字元個數。


lib/kasprintf
[cpp]
view plain copy print?
  1. char *kasprintf(gfp_t gfp, constchar *fmt, ...)  

char *kasprintf(gfp_t gfp, const char *fmt, ...)
功能:格式化輸出字串到一段且gfp分配的記憶體中。
返回:返回指向該內容的字串指標。