awtk/docs/manual/utils_t.md
2021-08-03 07:53:37 +08:00

32 KiB
Raw Blame History

utils_t

概述

工具类。

函数

函数名称 说明
compare_always_equal 始终返回相等。
data_url_copy 将数据从源URL拷贝到目标URL。
default_destroy 缺省的destroy函数。释放data指向的内存。
dummy_destroy 空的destroy函数。
filename_to_name 从完整文件名中获取文件名。
filename_to_name_ex 从完整文件名中获取文件名。
image_region_parse 解析子图的区域信息。
object_to_json 将对象转换成json字符串。
pointer_compare 指针比较。
tk_atob 将字符串转换为布尔类型。
tk_atof 将字符串转换为浮点类型。
tk_atoi 将字符串转换为整型数。
tk_atol 将字符串转换为整型。
tk_atoul 将字符串转换为整型。
tk_ftoa 将浮点型转换为字符串。
tk_is_valid_name 判断是否是有效的属性名。
tk_itoa 将整型转换为字符串。
tk_memcpy16 拷贝数据2字节。
tk_memcpy32 拷贝数据4字节。
tk_memset16 设置数据2字节。
tk_memset24 设置数据3字节。
tk_memset32 设置数据4字节。
tk_pixel_copy 已bpp字节为标准拷贝数据。
tk_pointer_from_int 将int转换成指针。
tk_pointer_to_int 将指针转换成int。
tk_qsort 快速排序。
tk_skip_to_num 跳过字符串函数,如:字符串"hello123world",返回的结果是"123world"。
tk_snprintf 将可变参数(...)按照format格式化字符串并将字符串复制到str中。
tk_sscanf 从字符串读取格式化输入。
tk_str_append 字符串追加函数。
tk_str_cmp 字符串比较函数。
tk_str_copy 字符串拷贝函数。
tk_str_icmp 字符串比较函数(不区分大小写)。
tk_str_start_with 检查字符串是否以指定的字符串prefix开头。
tk_str_tolower 将大写字母转换为小写字母。
tk_str_totitle 将单词首字母转换为大写字母。
tk_str_toupper 将小写字母转换为大写字母。
tk_strcpy 将src所指向的字符串复制到dst。
tk_strdup 字符串拷贝函数。
tk_strlen 获取字符串的长度。str为空时返回0。
tk_strncpy 将src所指向的字符串复制到dst最多复制len个字符串并在[len]位置添加'\0'。
tk_strncpy_s 将src所指向的字符串复制到dst最多复制min(dst_len-1, src_len)个字符串,并在[len]位置添加'\0'。
tk_strndup 字符串拷贝函数最多复制len个字符串。
tk_strrstr 从后往前查找指定的字符串。
tk_strtoi 将字符串转换为整型。
tk_strtol 将字符串转换为长整型。
tk_strtoll 将字符串转换为长整型。
tk_under_score_to_camel 将下划线名字转成驼峰名字。
tk_vsnprintf 将可变参数ap按照format格式化字符串并将字符串复制到str中。
tk_watob 将宽字符串转换为布尔类型。
tk_watof 将宽字符串转换为浮点类型。
tk_watoi 将宽字符串转换为整型。
tk_watoi_n 将宽字符串转换为整型。
tk_wstr_count_c 统计UCS字符串中某个字符出现的次数。
tk_wstr_dup_utf8 将utf8字符串拷贝为UCS字符串。
tk_wstrdup 宽字符串拷贝函数。
xml_file_expand_read expand include process instruction to file content:

compare_always_equal 函数


  • 函数功能:

始终返回相等。

  • 函数原型:
int compare_always_equal (const void* a, const void* b);
  • 参数说明:
参数 类型 说明
返回值 int 始终返回0。
a const void* 数据a。
b const void* 数据b。

data_url_copy 函数


  • 函数功能:

将数据从源URL拷贝到目标URL。

  • 函数原型:
ret_t data_url_copy (const char* dst_url, const char* src_url);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
dst_url const char* 目标URL。
src_url const char* 源URL。

default_destroy 函数


  • 函数功能:

缺省的destroy函数。释放data指向的内存。

  • 函数原型:
ret_t default_destroy (void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
data void* 数据。

dummy_destroy 函数


  • 函数功能:

空的destroy函数。

  • 函数原型:
ret_t dummy_destroy (void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
data void* 数据。

filename_to_name 函数


  • 函数功能:

从完整文件名中获取文件名。

  • 函数原型:
ret_t filename_to_name (const char* filename, char* str, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
filename const char* 完整的文件名。
str char* 用于返回文件名。
size uint32_t 文件名(str参数)的最大长度。

filename_to_name_ex 函数


  • 函数功能:

从完整文件名中获取文件名。

  • 函数原型:
ret_t filename_to_name_ex (const char* filename, char* str, uint32_t size, bool_t remove_extname);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
filename const char* 完整的文件名。
str char* 用于返回文件名。
size uint32_t 文件名(str参数)的最大长度。
remove_extname bool_t 是否移除扩展名。

image_region_parse 函数


  • 函数功能:

解析子图的区域信息。

  • 函数原型:
ret_t image_region_parse (uint32_t img_w, uint32_t img_h, const char* region, rect_t* r);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
img_w uint32_t 图片宽度。
img_h uint32_t 图片宽度。
region const char* region。
r rect_t* 返回具体位置。

object_to_json 函数


  • 函数功能:

将对象转换成json字符串。

  • 函数原型:
ret_t object_to_json (object_t* obj, str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
obj object_t* object对象。
str str_t* 用于返回结果。

pointer_compare 函数


  • 函数功能:

指针比较。

  • 函数原型:
int pointer_compare (const void* a, const void* b);
  • 参数说明:
参数 类型 说明
返回值 int 返回0表示相等返回负数表示小于返回整数表示大于。
a const void* 数据a。
b const void* 数据b。

tk_atob 函数


  • 函数功能:

将字符串转换为布尔类型。

  • 函数原型:
bool_t tk_atob (const char* str);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回转换后的布尔类型。
str const char* 要转换为布尔类型的字符串。

tk_atof 函数


  • 函数功能:

将字符串转换为浮点类型。

  • 函数原型:
double tk_atof (const char* str);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的浮点类型。
str const char* 要转换为浮点类型的字符串。

tk_atoi 函数


  • 函数功能:

将字符串转换为整型数。

  • 函数原型:
int32_t tk_atoi (const char* str);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的整型。
str const char* 要转换为整型数的字符串。

tk_atol 函数


  • 函数功能:

将字符串转换为整型。

  • 函数原型:
int64_t tk_atol (const char* str);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的整型。
str const char* 要转换为整型的字符串。

tk_atoul 函数


  • 函数功能:

将字符串转换为整型。

  • 函数原型:
uint64_t tk_atoul (const char* str);
  • 参数说明:
参数 类型 说明
返回值 uint64_t 返回转换后的整型。
str const char* 要转换为整型的字符串。

tk_ftoa 函数


  • 函数功能:

将浮点型转换为字符串。

  • 函数原型:
const char* tk_ftoa (char* str, int len, double f);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串。
str char* 保存字符串缓冲区。
len int 缓冲区大小。
f double 要转换的浮点型。

tk_is_valid_name 函数


  • 函数功能:

判断是否是有效的属性名。

  • 函数原型:
bool_t tk_is_valid_name (const char* name);
  • 参数说明:
参数 类型 说明
返回值 bool_t 如果名称有效返回TRUE否则返回FALSE。
name const char* 名字字符串。

tk_itoa 函数


  • 函数功能:

将整型转换为字符串。

  • 函数原型:
const char* tk_itoa (char* str, int len, int n);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串。
str char* 保存字符串缓冲区。
len int 缓冲区大小。
n int 要转换的整型。

tk_memcpy16 函数


  • 函数功能:

拷贝数据2字节。

  • 函数原型:
uint16_t* tk_memcpy16 (uint16_t* dst, uint16_t* src, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint16_t* 返回设置好的buff。
dst uint16_t* 目标
src uint16_t* 源。
size uint32_t 个数。

tk_memcpy32 函数


  • 函数功能:

拷贝数据4字节。

  • 函数原型:
uint32_t* tk_memcpy32 (uint32_t* dst, uint32_t* src, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
dst uint32_t* 目标
src uint32_t* 源。
size uint32_t 个数。

tk_memset16 函数


  • 函数功能:

设置数据2字节。

  • 函数原型:
uint16_t* tk_memset16 (uint16_t* buff, uint16_t val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint16_t* 返回设置好的buff。
buff uint16_t* buff
val uint16_t 值。
size uint32_t 个数。

tk_memset24 函数


  • 函数功能:

设置数据3字节。

  • 函数原型:
uint32_t* tk_memset24 (uint32_t* buff, void* val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
buff uint32_t* buff。
val void* 值。
size uint32_t 个数。

tk_memset32 函数


  • 函数功能:

设置数据4字节。

  • 函数原型:
uint32_t* tk_memset32 (uint32_t* buff, uint32_t val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
buff uint32_t* buff。
val uint32_t 值。
size uint32_t 个数。

tk_pixel_copy 函数


  • 函数功能:

已bpp字节为标准拷贝数据。

  • 函数原型:
void* tk_pixel_copy (void* dst, void* src, uint32_t size, uint8_t bpp);
  • 参数说明:
参数 类型 说明
返回值 void* 返回设置好的buff。
dst void* 目标
src void* 源。
size uint32_t 个数。
bpp uint8_t 单个数据的字节数。

tk_pointer_from_int 函数


  • 函数功能:

将int转换成指针。

常用于将int类型的数据作为回调函数的ctx。

  • 函数原型:
void* tk_pointer_from_int (int32_t v);
  • 参数说明:
参数 类型 说明
返回值 void* 返回对应的指针。
v int32_t 整数。

tk_pointer_to_int 函数


  • 函数功能:

将指针转换成int。

与tk_pointer_from_int配套使用也就是pointer本身必须就是整数而不是指针否则pointer会被截断。

  • 函数原型:
int32_t tk_pointer_to_int (const void* p);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回对应的int数据。
p const void* 指针。

tk_qsort 函数


  • 函数功能:

快速排序。

  • 函数原型:
ret_t tk_qsort (void** array, size_t nr, tk_compare_t cmp);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
array void** 数据。
nr size_t 元素个数。
cmp tk_compare_t 比较函数。

tk_skip_to_num 函数


  • 函数功能:

跳过字符串函数,如:字符串"hello123world",返回的结果是"123world"。

  • 函数原型:
const char* tk_skip_to_num (const char* str);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回转换后的字符串。
str const char* 要输入的原始字符串。

tk_snprintf 函数


  • 函数功能:

将可变参数(...)按照format格式化字符串并将字符串复制到str中。

  • 函数原型:
int tk_snprintf (char* str, size_t size, const char* format);
  • 参数说明:
参数 类型 说明
返回值 int 返回格式化后的字符串长度。
str char* 目标字符串。
size size_t 拷贝字节数。
format const char* 格式化字符串。

tk_sscanf 函数


  • 函数功能:

从字符串读取格式化输入。

  • 函数原型:
int tk_sscanf (char* str, const char* format);
  • 参数说明:
参数 类型 说明
返回值 int 返回成功匹配和赋值的个数。
str char* 要输入的字符串。
format const char* 格式化字符串。

tk_str_append 函数


  • 函数功能:

字符串追加函数。

  • 函数原型:
ret_t tk_str_append (char* str, uint32_t max_len, const char* s);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str char* 被追加字符串。
max_len uint32_t 字符串的最大长度。
s const char* 要追加的字符串。

tk_str_cmp 函数


  • 函数功能:

字符串比较函数。

  • 函数原型:
int32_t tk_str_cmp (const char* a, const char* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1则表示a为NULL如果返回值=1则表示b为NULL如果返回值<0则表示a小于b如果返回值>0则表示a大于b如果返回值=0则表示a等于b。
a const char* 要进行比较的第一个字符串。
b const char* 要进行比较的第二个字符串。

tk_str_copy 函数


  • 函数功能:

字符串拷贝函数。 XXX: 要求dst为NULL或内存块的首地址本函数调用之后dst可能无效请保留返回的地址

  • 函数原型:
char* tk_str_copy (const char* dst, const char* src);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针如果失败则返回NULL。
dst const char* 目标字符串。
src const char* 源字符串。

tk_str_icmp 函数


  • 函数功能:

字符串比较函数(不区分大小写)。

  • 函数原型:
int32_t tk_str_icmp (const char* a, const char* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1则表示a为NULL如果返回值=1则表示b为NULL如果返回值<0则表示a小于b如果返回值>0则表示a大于b如果返回值=0则表示a等于b。
a const char* 要进行比较的第一个字符串。
b const char* 要进行比较的第二个字符串。

tk_str_start_with 函数


  • 函数功能:

检查字符串是否以指定的字符串prefix开头。

  • 函数原型:
bool_t tk_str_start_with (const char* str, const char* prefix);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是否则表示不是。
str const char* 要检查字符串。
prefix const char* 被检查的字符串。

tk_str_tolower 函数


  • 函数功能:

将大写字母转换为小写字母。 修改传入的字符串。

  • 函数原型:
char* tk_str_tolower (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的小写字母字符串。
str char* 要被转换成小写字母的字符串。

tk_str_totitle 函数


  • 函数功能:

将单词首字母转换为大写字母。 修改传入的字符串。

  • 函数原型:
char* tk_str_totitle (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的字符串。
str char* 被转换的字符串。

tk_str_toupper 函数


  • 函数功能:

将小写字母转换为大写字母。 修改传入的字符串。

  • 函数原型:
char* tk_str_toupper (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的大写字母字符串。
str char* 要被转换成大写字母的字符串。

tk_strcpy 函数


  • 函数功能:

将src所指向的字符串复制到dst。

  • 函数原型:
char* tk_strcpy (char* dst, const char* src);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
src const char* 原字符串。

tk_strdup 函数


  • 函数功能:

字符串拷贝函数。

  • 函数原型:
char* tk_strdup (const char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针如果失败则返回NULL。
str const char* 原字符串。

tk_strlen 函数


  • 函数功能:

获取字符串的长度。str为空时返回0。

  • 函数原型:
uint32_t tk_strlen (const char* str);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回字符串的长度。
str const char* 字符串。

tk_strncpy 函数


  • 函数功能:

将src所指向的字符串复制到dst最多复制len个字符串并在[len]位置添加'\0'。

请确保dst的长度>=(len+1)

  • 函数原型:
char* tk_strncpy (char* dst, const char* src, size_t len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
src const char* 源字符串。
len size_t 要复制的字符串个数。

tk_strncpy_s 函数


  • 函数功能:

将src所指向的字符串复制到dst最多复制min(dst_len-1, src_len)个字符串,并在[len]位置添加'\0'。

  • 函数原型:
char* tk_strncpy_s (char* dst, size_t dst_len, const char* src, size_t src_len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
dst_len size_t 目标字符串内存长度。
src const char* 源字符串。
src_len size_t 要复制的字符串个数。

tk_strndup 函数


  • 函数功能:

字符串拷贝函数最多复制len个字符串。

  • 函数原型:
char* tk_strndup (const char* str, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针如果失败则返回NULL。
str const char* 原字符串。
len uint32_t 要复制的字符串个数。

tk_strrstr 函数


  • 函数功能:

从后往前查找指定的字符串。

  • 函数原型:
const char* tk_strrstr (const char* str, const char* substr);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串的位置或者NULL。
str const char* 字符串。
substr const char* 子字符串。

tk_strtoi 函数


  • 函数功能:

将字符串转换为整型。

  • 函数原型:
int32_t tk_strtoi (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的整型。
str const char* 要转换为整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

tk_strtol 函数


  • 函数功能:

将字符串转换为长整型。

  • 函数原型:
long tk_strtol (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 long 返回转换后的长整型。
str const char* 要转换为长整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

tk_strtoll 函数


  • 函数功能:

将字符串转换为长整型。

  • 函数原型:
int64_t tk_strtoll (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的长整型。
str const char* 要转换为长整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

tk_under_score_to_camel 函数


  • 函数功能:

将下划线名字转成驼峰名字。

  • 函数原型:
const char* tk_under_score_to_camel (const char* name, char* out, uint32_t max_out_size);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回T驼峰名字。
name const char* 下划线名字。
out char* 驼峰名字(保存结果)。
max_out_size uint32_t 结果最大长度。

tk_vsnprintf 函数


  • 函数功能:

将可变参数ap按照format格式化字符串并将字符串复制到str中。

  • 函数原型:
int tk_vsnprintf (char* str, size_t size, const char* format, va_list ap);
  • 参数说明:
参数 类型 说明
返回值 int 返回格式化后的字符串长度。
str char* 目标字符串。
size size_t 拷贝字节数。
format const char* 格式化字符串。
ap va_list 可变参数。

tk_watob 函数


  • 函数功能:

将宽字符串转换为布尔类型。

  • 函数原型:
bool_t tk_watob (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回转换后的布尔类型。
str const wchar_t* 要转换为布尔类型的宽字符串。

tk_watof 函数


  • 函数功能:

将宽字符串转换为浮点类型。

  • 函数原型:
double tk_watof (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的浮点类型。
str const wchar_t* 要转换为浮点类型的宽字符串。

tk_watoi 函数


  • 函数功能:

将宽字符串转换为整型。

  • 函数原型:
int tk_watoi (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 int 返回转换后的整型。
str const wchar_t* 要转换为整型的宽字符串。

tk_watoi_n 函数


  • 函数功能:

将宽字符串转换为整型。

  • 函数原型:
int tk_watoi_n (const wchar_t* str, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 int 返回转换后的整型。
str const wchar_t* 要转换为整型的宽字符串。
len uint32_t 字符串长度。

tk_wstr_count_c 函数


  • 函数功能:

统计UCS字符串中某个字符出现的次数。

  • 函数原型:
uint32_t tk_wstr_count_c (const wchar_t* str, wchar_t c);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回字符出现的次数。
str const wchar_t* 字符串。
c wchar_t 字符。

tk_wstr_dup_utf8 函数


  • 函数功能:

将utf8字符串拷贝为UCS字符串。

  • 函数原型:
wchar_t* tk_wstr_dup_utf8 (char* str);
  • 参数说明:
参数 类型 说明
返回值 wchar_t* 返回UCS字符串(需要调用TKMEM_FREE释放)。
str char* utf8编码的字符串。

tk_wstrdup 函数


  • 函数功能:

宽字符串拷贝函数。

  • 函数原型:
wchar_t* tk_wstrdup (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 wchar_t* 返回指向的复制宽字符串指针如果失败则返回NULL。
str const wchar_t* 原宽字符串。

xml_file_expand_read 函数


  • 函数功能:

expand include process instruction to file content:

  • 函数原型:
ret_t xml_file_expand_read (const char* filename, str_t* s);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
filename const char* 文件名。
s str_t* 用于返回内容。