linux中字符串转换函数 simple_strtoul【转】

简介: 转自:http://blog.csdn.net/tommy_wxie/article/details/7480087 Linux内核中提供的一些字符串转换函数: lib/vsprintf.c [html] view plain copy print? 1.

转自:http://blog.csdn.net/tommy_wxie/article/details/7480087

Linux内核中提供的一些字符串转换函数:

lib/vsprintf.c

[html] view plain copy
print?

     1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base)    
     2. unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base)    
     3. long simple_strtol(const char *cp, char **endp, unsigned int base)    
     4. long long simple_strtoll(const char *cp, char **endp, unsigned int base)    
     5. int strict_strtoul(const char *cp, unsigned int base, unsigned long *res)    
     6. int strict_strtol(const char *cp, unsigned int base, long *res)    
     7. int strict_strtoull(const char *cp, unsigned int base, unsigned long long *res)    
     8. int strict_strtoll(const char *cp, unsigned int base, long long *res)    
     9. int sprintf(char *buf, const char *fmt, ...)    
    10. int snprintf(char *buf, size_t size, const char *fmt, ...)    
    11. int sscanf(const char *buf, const char *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”。 参数下同。

[cpp] view plain copy
print?

    static ssize_t led_brightness_store(struct device *dev,  
            struct device_attribute *attr, const char *buf, size_t size)  
    {  
        struct led_classdev *led_cdev = dev_get_drvdata(dev);  
        ssize_t ret = -EINVAL;  
        char *after;  
        unsigned long state = simple_strtoul(buf, &after, 10);  
        size_t count = after - buf;  
      
        if (isspace(*after))  
            count++;  
      
        if (count == size) {  
            ret = count;  
      
            if (state == LED_OFF)  
                led_trigger_remove(led_cdev);  
            led_set_brightness(led_cdev, state);  
        }  
      
        return ret;  
    }  



unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base)
功能:将一个字符串转换成unsigend 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”字符。下同


long long simple_strtoll(const char *cp, char **endp, unsigned int base)
功能:将一个字符串转换成sigend long long型。
返回:返回转换后数据。


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 plaincopyprint?

    char *kasprintf(gfp_t gfp, const char *fmt, ...)  

[cpp] view plain copy
print?

    char *kasprintf(gfp_t gfp, const char *fmt, ...)  


char *kasprintf(gfp_t gfp, const char *fmt, ...)
功能:格式化输出字符串到一段且gfp分配的内存中。
返回:返回指向该内容的字符串指针。

 

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
16天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
16天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
4天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
13天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
35 9
|
1天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
1天前
|
Linux
【Linux】常用命令
【Linux】常用命令
17 0
|
1天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
9 0
Linux 网络操作命令Telnet
|
2天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
28 0
|
2天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
7 0