字符串转换(String Conversions)¶
simple_strtoull¶
函数签名:
unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base);
说明:
从字符串cp位置开始将字符串转换为 unsigned long long,直到字符串无法转换
参数:
cp: 要转换的字符串endp: 转换停止的位置,如果整个字符串都完成转换则和cp指向位置相同base: 要转换的进制,如果 0 表示自动转换,其它值分别是:2、8、10、16
simple_strtoul¶
函数签名:
unsigned long simple_strtoul(const char *cp, char **endp, unsigned int base);
说明: 同上
参数: 同上
simple_strtol¶
函数签名:
unsigned long simple_strtol(const char *cp, char **endp, unsigned int base);
说明: 同上
参数: 同上
simple_strtoll¶
函数签名:
unsigned long simple_strtoll(const char *cp, char **endp, unsigned int base);
说明: 同上
参数: 同上
vsnprintf¶
函数签名:
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
说明:生成格式化字符串,将生成的字符串放入 buf
返回值:返回字符串长度,包含结束符\0
参数:
buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化args: 可变参数
vscnprintf¶
函数签名:
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
说明:生成格式化字符串,将生成的字符串放入 buf
返回值:返回字符串长度,不包含结束符\0
参数:
buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化args: 可变参数
snprintf¶
函数签名:
int snprintf(char *buf, size_t size, const char *fmt, ...)
说明:生成格式化字符串,将生成的字符串放入 buf
返回值:返回字符串长度,包含结束符\0
参数:
buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化...: 可变参数
scnprintf¶
函数签名:
int scnprintf(char *buf, size_t size, const char *fmt, ...)
说明:生成格式化字符串,将生成的字符串放入 buf
返回值:返回字符串长度,不包含结束符\0
参数:
buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化...: 可变参数
vsprintf¶
函数签名:
int vsprintf(char *buf, const char *fmt, va_list args)
说明:生成格式化字符串,将生成的字符串放入 buf 返回值:
参数:
buf: 保存字符串的 bufferfmt: 格式化args: 可变参数
sprintf¶
函数签名:
int sprintf(char *buf, const char *fmt, ...);
说明:生成格式化字符串,将生成的字符串放入 buf 返回值:
参数:
buf: 保存字符串的 bufferfmt: 格式化...: 可变参数
vbin_printf¶
函数签名:
int vbin_printf(u32 *bin_buf, size_t size, const char *fmt, va_list args);
说明:解析格式字符串并将args的二进制值放入缓冲区(bin_buf)中
返回值:
参数:
bin_buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化args: 可变参数
如果返回值大于size,则结果
bin_buf对bstr_printf无效。
bstr_printf¶
函数签名:
int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf);
说明: 从二进制参数中格式化字符串并将其放入缓冲区中
返回值:
参数:
bin_buf: 保存字符串的 buffersize: 缓存区大小fmt: 格式化args: 可变参数
bprintf¶
函数签名:
int bprintf(u32 *bin_buf, size_t size, const char *fmt, ...)
说明: 解析格式字符串并将args的二进制值放入缓冲区中
返回值:
参数:
bin_buf:size:fmt:...:
vsscanf¶
函数签名:
int vsscanf(const char *buf, const char *fmt, va_list args)
说明: 将缓存区格式化为参数列表
返回值:
参数:
buf:fmt:args:
sscanf¶
函数签名:
int sscanf(const char *buf, const char *fmt, ...);
说明: 将缓存区格式化为参数列表
返回值:
参数:
buf:fmt:...:
kstrtoul¶
函数签名:
int kstrtoul(const char *s, unsigned int base, unsigned long *res)
说明:
将字符串转为unsigned long,
返回值:
参数:
s: 要转换的字符串,字符串第一个字符可以是+,决不可以是-base: 要使用的进制res: 转换结果
kstrtol¶
函数签名:
int kstrtol(const char *s, unsigned int base, long *res);
说明:
将字符串转为long,
返回值:
参数:
s: 要转换的字符串,字符串第一个字符可以是+,可以是-base: 要使用的进制res: 转换结果
kstrtoull¶
函数签名:
int kstrtoull(const char *s, unsigned int base, unsigned long long *res);
说明:
将字符串转为unsigned long long
返回值:
参数:
s:base:res:
kstrtoll¶
函数签名:
int kstrtoll(const char *s, unsigned int base, long long *res);
说明:
将字符串转为long long
返回值:
参数:
s:base:res:
kstrtouint¶
函数签名:
int kstrtouint(const char *s, unsigned int base, unsigned int *res);
说明:
返回值:
参数:
s:base:res:
kstrtoint¶
函数签名:
int kstrtoint(const char *s, unsigned int base, int *res);
说明:
返回值:
参数:
s:base:res:
kstrtobool¶
函数签名:
int kstrtobool(const char *s, bool *res);
说明:
将字符串转为 boolean 值
返回值:
参数:
s:res:
string_get_size¶
函数签名:
void string_get_size(u64 size, u64 blk_size, const enum string_size_units units, char *buf, int len);
说明:
获取指定的units的大小
返回值:
参数:
size: 以块size为单位大小进行转换blk_size: 块大小(使用1表示以字节为大小)units: 使用的单位(支持 1000 或 1024)buf: 格式化输出的缓存区位置len: 缓存区大小
parse_int_array_user¶
函数签名:
int parse_int_array_user(const char __user *from, size_t count, int **array);
说明: 将字符串切为一系列整数
返回值:
参数:
from:count:array:
string_unescape¶
函数签名:
int string_unescape(char *src, char *dst, size_t size, unsigned int flags);
说明:
返回值:
参数:
str:dst:size:flags:
string_escape_mem¶
函数签名:
int string_escape_mem(const char *src, size_t isz, char *dst, size_t osz, unsigned int flags, const char *only);
说明:
返回值:
参数:
src: 要转换的buffer(unescaped)isz: 要转换buffer的大小dst: 目标buffer(escaped)osz: 目标buffer的大小flags:only: 以空结尾的字符串,其中包含用于限制所选转义类的字符。如果字符只包含在标记中选择的类通常不会转义的字符中,则它们将被复制到未转义的字符中。
kasprintf_strarray¶
函数签名:
char **kasprintf_strarray(gfp_t gfp, const char *prefix, size_t n);
说明:
返回值:
参数:
gfp:prefix:n:
kfree_strarray¶
函数签名:
void kfree_strarray(char **array, size_t n);
说明:
返回值:
参数:
array:n:
strscpy_pad¶
函数签名:
ssize_t strscpy_pad(char *dest, const char *src, size_t count);
说明: 将 C string 复制到 buffer
返回值:
参数:
dest: 要复制到的目标 buffersrc: 要复制的 C string 源count: 目标 buffer 的大小
skip_spaces¶
函数签名:
char *skip_spaces(const char *str);
说明: 删除字符串之前的空格
返回值: 返回删除字符串前空格的字符串
参数:
str: 要处理的字符串
strim¶
函数签名:
char *strim(char *s);
说明: 删除字符串首尾的空格
返回值:
参数:
str: 要处理的字符串
sysfs_streq¶
函数签名:
bool sysfs_streq(const char *s1, const char *s2);
说明: 比较两个字符串(会删除字符串中的换行符)
返回值:
字符串相同则返回true
参数:
s1:s2:
match_string¶
函数签名:
int match_string(const char *const *array, size_t n, const char *string);
说明: 匹配数组中给定的字符串
返回值:
如果找到,返回字符串在数组中的索引位置
如果没找到,返回
-EINVAL
参数:
array: 字符串数组n: 字符串数组中的值,如果传入 -1,则字符串数组以NULL结束string: 要匹配的字符串
__sysfs_match_string¶
函数签名:
int __sysfs_match_string(const char *const *array, size_t n, const char *str);
说明: 在字符串数组中匹配给定字符串
返回值:
参数:
array: 字符串数组n: 字符串数组中的值,如果传入 -1,则字符串数组以NULL结束string: 要匹配的字符串
strreplace¶
函数签名:
char *strreplace(char *s, char old, char new);
说明: 替换字符串中出现的所有字符
返回值:
参数:
s: 要操作的字符串old: 被替换的字符串new: 要替换old的字符串
memcpy_and_pad¶
函数签名:
void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count, int pad);
说明: 字符串复制
返回值: 无
参数:
dest: 目标缓存区dest_len: 目标缓存区大小src: 源缓存区cout: 源缓存区大小pad: 当有剩余空间时候,要填充的字符