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

转自: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分配的内存中。
返回:返回指向该内容的字符串指针。

 

时间: 2024-09-02 04:20:26

linux中字符串转换函数 simple_strtoul【转】的相关文章

JavaScript中字符串分割函数split用法实例_javascript技巧

本文实例讲述了JavaScript中字符串分割函数split用法.分享给大家供大家参考.具体如下: 先来看下面这段代码: <script type="text/javascript"> var str="How are you doing today?" document.write(str.split(" ") + "<br />") document.write(str.split("&q

c语言中字符串分割函数及实现方法_C 语言

1.问题引入 自己在写一个linux下的模拟执行指令的时候,遇到了输入"cat a.c",要将该字符串分解成cat和a.c两个单独的字符串,虽然知道有strtok的存在,但是想自己尝试写一下,于是就自己写了一个,不过总是遇到这样或那样的问题,虽然最后调通了,不过确浪费了不少时间:后来作业交上去以后又仔细阅读了strtok函数,发现原来linux下已经改成strsep,所有在这里就写一下自己所走的过程. 2.自己写的字符串分割函数:用于分割指令,比如cat a.c最后会被分割成cat和a

C语言中字符串常用函数strcat与strcpy的用法介绍

以下是对C语言中字符串常用函数strcat与strcpy的使用方法进行了详细的分析介绍,需要的朋友可以参考下   strcpy原型声明:extern char *strcpy(char* dest, const char *src);头文件:#include <string.h>功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串. 返回指向dest的指针.函数实现: 复制代

linux中的图形处理函数

问题描述 linux中的图形处理函数 个人感觉qt和c++有点相似,没接触过c++,但是对图像的处理有一定的兴趣,linux下有没有专门的图形处理函数?帮忙发下资料,不胜感激.

java中字符串转换问题

问题描述 java中字符串转换问题 比如我要将获得的值"pixiedust.ogg"转换成 "Pixie Dust"要怎么转换? 解决方案 String s = new String("abcd pixiedust.ogg 1234"); s = s.replace("pixiedust.ogg","Pixie Dust"); 解决方案二: String str="pixiedust.ogg&qu

php中字符串转换成数组函数explode(),implode()

行看看这两个函数 implode 函数: 使用函数 implode 将数组转换为字符串 explode 函数: 使用函数 explode 将字符串转换成数组 例1. 今天在php论坛中看到以为朋友发了一个帖子请教php如何把字符串转换成数组;作为php程序员的新一第一反应是联想到explode(),implode()这两个函数.新一也是用里面的函数进行转换成数组的. con[1]=28&selt[1]=1&con[2]=29&selt[2]=4&con[3]=26&

c语言中字符串处理函数详解

C语言提供了丰富的字符串处理函数,例如字符串的输入.输出.合并.修改.比较.转换.复制.搜索等,使用这些现成的函数可大大减轻编程的负担. 用于输入输出的字符串函数,例如printf.puts.scanf.gets等,使用时应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h. 1.字符串长度函数strlen strlen 是 string length 的缩写,用来获得字符串的长度.所谓长度,就是包含多少个字符(不包括字符串结束标志 '\0').语法格式为: strlen

javascript中字符串操作函数

1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号.有效值为0到字符串长度减1的数字. 如果指定位置没有字符,将返回NaN. 例如:  代码如下 复制代码       var  str = "ABC";       str.charCodeAt(0); 结果:65 2.fromCharCode方法从一些Unicode字符串中返回一个字符串. String.

SQL server中字符串逗号分隔函数分享_MsSql

继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做) 例:查找姓名为"张三,李二" 的数据此时在数据库里就要对此参数做处理如图: 函数代码如下 CREATE FUNCTION [dbo].[fnSplitStr] ( @sText NVARCHAR(Max), @sDelim CHAR(1) ) RETURNS @retArray TABLE ( value VARCHAR(100) ) AS BEGI