simple_strtoull

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 ?
  1. static ssize_t led_brightness_store(struct device *dev,  
  2.         struct device_attribute *attr, const char *buf, size_t size)  
  3. {  
  4.     struct led_classdev *led_cdev = dev_get_drvdata(dev);  
  5.     ssize_t ret = -EINVAL;  
  6.     char *after;  
  7.     unsigned long state = simple_strtoul(buf, &after, 10);  
  8.     size_t count = after - buf;  
  9.   
  10.     if (isspace(*after))  
  11.         count++;  
  12.   
  13.     if (count == size) {  
  14.         ret = count;  
  15.   
  16.         if (state == LED_OFF)  
  17.             led_trigger_remove(led_cdev);  
  18.         led_set_brightness(led_cdev, state);  
  19.     }  
  20.   
  21.     return ret;  
  22. }  

你可能感兴趣的:(linux_kernel)