Skip to content

utils_t

概述

工具类。

函数

函数名称说明
bits_stream_get从buff中获取第index位的值。
bits_stream_set设置buff中第index位的值。
compare_always_equal始终返回相等。
data_url_copy将数据从源URL拷贝到目标URL。
default_destroy缺省的destroy函数。释放data指向的内存。
dummy_destroy空的destroy函数。
file_read_as_unix_text读取文本文件。并将windows换行(\r\n)或macos换行(\r)转换为unix换行(\n)。
filename_to_name从完整文件名中获取文件名。
filename_to_name_ex从完整文件名中获取文件名。
image_region_parse解析子图的区域信息。
object_to_json将对象转换成json字符串。
pointer_compare指针比较。
ret_code_from_name将ret_t的文本名称转换成对应的值。
ret_code_to_name将ret_t转换成对应的文本名称。
tk_angle计算两点之间的角度(逆时针方向为正,GUI坐标)。
tk_atob将字符串转换为布尔类型。
tk_atof将字符串转换为浮点类型。
tk_atoi将字符串转换为整型数。
tk_atol将字符串转换为整型。
tk_atoul将字符串转换为整型。
tk_basic_type_from_name将类型名称转换成对应的类型。
tk_bits_data_from_bytes_data将bytes数据转换成bits数据(每个字节对应一位)。
tk_bits_data_to_bytes_data将bits数据转换成bytes数据(每个字节对应一位)。
tk_bits_to_bytes将bits数转换成bytes数。
tk_buffer_get_value获取buffer中的值。
tk_buffer_set_value设置buffer中的值。
tk_count_char统计字符串中某个字符出现的次数。
tk_date_time_format格式化时间。
tk_distance计算两点之间的距离。
tk_eval_ratio_or_px如果expr以px/PX结束,直接返回expr前面的数值。
tk_free_utf8_argv释放utf8字符串数组。
tk_ftoa将浮点型转换为字符串。
tk_int_is_in_array检查整数是否在整数数组中。
tk_is_ui_thread判断当前线程是否是UI线程。
tk_is_valid_name判断是否是有效的属性名。
tk_itoa将整型转换为字符串。
tk_levelize将value转换成level。
tk_lltoa将整型转换为字符串。
tk_memcpy内存拷贝。
tk_memcpy16拷贝数据2字节。
tk_memcpy32拷贝数据4字节。
tk_memdup内存拷贝。
tk_memset16设置数据2字节。
tk_memset24设置数据3字节。
tk_memset32设置数据4字节。
tk_mergesort归并排序(如果需要稳定的排序,可以选择归并排序,而不是快速排序)。
tk_normalize_key_name标准化key_name
tk_pixel_copy已bpp字节为标准拷贝数据。
tk_pointer_from_int将int转换成指针。
tk_pointer_from_long将long转换成指针。
tk_pointer_to_int将指针转换成int。
tk_pointer_to_long将指针转换成long。
tk_qsort快速排序。
tk_replace_char替换字符。
tk_replace_locale将文本中的$locale$替换为对应的语言。
tk_set_ui_thread设置UI线程的ID。
tk_size_of_basic_type获取基本类型的大小(字节数)。
tk_skip_chars跳过字符串中的字符。
tk_skip_to_chars跳到字符串中的字符。
tk_skip_to_num跳过字符串函数,如:字符串"hello123world",返回的结果是"123world"。
tk_snprintf将可变参数(...)按照format格式化字符串,并将字符串复制到str中。
tk_sscanf从字符串读取格式化输入。
tk_sscanf_simple从字符串读取格式化输入。
tk_str_append字符串追加函数。
tk_str_case_end_with检查字符串是否以指定的字符串appendix结尾(忽略大小写)。
tk_str_case_start_with检查字符串是否以指定的字符串prefix开头(忽略大小写)。
tk_str_copy字符串拷贝函数。
tk_str_end_with检查字符串是否以指定的字符串appendix结尾。
tk_str_is_in_array检查字符串是否在字符串数组中。
tk_str_start_with检查字符串是否以指定的字符串prefix开头。
tk_str_tolower将大写字母转换为小写字母。
tk_str_totitle将单词首字母转换为大写字母。
tk_str_toupper将小写字母转换为大写字母。
tk_strcmp字符串比较函数。
tk_strcpy将src所指向的字符串复制到dst。
tk_strdup字符串拷贝函数。
tk_stricmp字符串比较函数(不区分大小写)。
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_strnlen获取字符串的长度。str为空时返回0。
tk_strrstr从后往前查找指定的字符串。
tk_strs_bsearch在字符串数组中查找字符串。
tk_strtoi将字符串转换为整型。
tk_strtol将字符串转换为长整型。
tk_strtoll将字符串转换为长整型。
tk_to_utf8_argv将宽字符串数组转换成utf8字符串数组。
tk_under_score_to_camel将下划线名字转成驼峰名字。
tk_utf8_dup_wstr将UCS字符串拷贝为utf8字符串。
tk_value_to_angle将value转换成角度。
tk_vsnprintf将可变参数ap按照format格式化字符串,并将字符串复制到str中。
tk_watob将宽字符串转换为布尔类型。
tk_watof将宽字符串转换为浮点类型。
tk_watoi将宽字符串转换为整型。
tk_watoi_n将宽字符串转换为整型。
tk_wild_card_match简单的通配符匹配。*匹配0到多个字符,?匹配1个字符。
tk_wstr_count_c统计UCS字符串中某个字符出现的次数。
tk_wstr_dup_utf8将utf8字符串拷贝为UCS字符串。
tk_wstr_select_word获取字符串中距离某个位置最近的单词(中文或英文字符)或数字字符的范围,选取的范围由标点符号或空格分隔开,得到的范围由left与right两个指针获取。
tk_wstrcmp字符串比较函数。
tk_wstrdup宽字符串拷贝函数。
tk_wstricmp字符串比较函数(不区分大小写)。
xml_file_expand_readexpand include process instruction to file content:
xml_file_expand_subfilenames_get从xml文件中获取所有使用 导入的文件名称

bits_stream_get 函数

  • 函数功能:

从buff中获取第index位的值。

  • 函数原型:
ret_t bits_stream_get (const uint8_t* buff, uint32_t size, uint32_t index, bool_t* value);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
buffconst uint8_t*数据。
sizeuint32_t数据长度。
indexuint32_t位索引。
valuebool_t*返回值。

bits_stream_set 函数

  • 函数功能:

设置buff中第index位的值。

  • 函数原型:
ret_t bits_stream_set (uint8_t* buff, uint32_t size, uint32_t index, bool_t value);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
buffuint8_t*数据。
sizeuint32_t数据长度。
indexuint32_t位索引。
valuebool_t值。

compare_always_equal 函数

  • 函数功能:

始终返回相等。

  • 函数原型:
int compare_always_equal (const void* a, const void* b);
  • 参数说明:
参数类型说明
返回值int始终返回0。
aconst void*数据a。
bconst 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_urlconst char*目标URL。
src_urlconst char*源URL。

default_destroy 函数

  • 函数功能:

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

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

dummy_destroy 函数

  • 函数功能:

空的destroy函数。

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

file_read_as_unix_text 函数

  • 函数功能:

读取文本文件。并将windows换行(\r\n)或macos换行(\r)转换为unix换行(\n)。

  • 函数原型:
char* file_read_as_unix_text (const char* filename, uint32_t* size);
  • 参数说明:
参数类型说明
返回值char*返回读取的数据,需要调用TKMEM_FREE释放。
filenameconst char*文件名。
sizeuint32_t*返回实际读取的长度。

filename_to_name 函数

  • 函数功能:

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

  • 函数原型:
ret_t filename_to_name (const char* filename, char* str, uint32_t size);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
filenameconst char*完整的文件名。
strchar*用于返回文件名。
sizeuint32_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表示成功,否则表示失败。
filenameconst char*完整的文件名。
strchar*用于返回文件名。
sizeuint32_t文件名(str参数)的最大长度。
remove_extnamebool_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_wuint32_t图片宽度。
img_huint32_t图片宽度。
regionconst char*region。
rrect_t*返回具体位置。

object_to_json 函数

  • 函数功能:

将对象转换成json字符串。

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

pointer_compare 函数

  • 函数功能:

指针比较。

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

ret_code_from_name 函数

  • 函数功能:

将ret_t的文本名称转换成对应的值。

  • 函数原型:
ret_t ret_code_from_name (const char* name);
  • 参数说明:
参数类型说明
返回值ret_t返回对应的值。
nameconst char*字符串。

ret_code_to_name 函数

  • 函数功能:

将ret_t转换成对应的文本名称。

  • 函数原型:
const char* ret_code_to_name (ret_t ret);
  • 参数说明:
参数类型说明
返回值const char*返回对应的名称。
retret_t代码。

tk_angle 函数

  • 函数功能:

计算两点之间的角度(逆时针方向为正,GUI坐标)。

  • 函数原型:
double tk_angle (int cx, int cy, int x, int y);
  • 参数说明:
参数类型说明
返回值double返回角度。
cxintcx。
cyintcy。
xintx。
yinty。

tk_atob 函数

  • 函数功能:

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

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

tk_atof 函数

  • 函数功能:

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

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

tk_atoi 函数

  • 函数功能:

将字符串转换为整型数。

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

tk_atol 函数

  • 函数功能:

将字符串转换为整型。

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

tk_atoul 函数

  • 函数功能:

将字符串转换为整型。

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

tk_basic_type_from_name 函数

  • 函数功能:

将类型名称转换成对应的类型。

  • 函数原型:
value_type_t tk_basic_type_from_name (const char* type);
  • 参数说明:
参数类型说明
返回值value_type_t返回对应的类型。
typeconst char*类型名称。

tk_bits_data_from_bytes_data 函数

  • 函数功能:

将bytes数据转换成bits数据(每个字节对应一位)。

  • 函数原型:
ret_t tk_bits_data_from_bytes_data (uint8_t* bits, uint32_t bits_size, uint8_t* bytes, uint32_t bytes_size);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
bitsuint8_t*bits。
bits_sizeuint32_tbits内存的长度(字节数)。
bytesuint8_t*bytes。
bytes_sizeuint32_tbytes内存的长度(字节数)。

tk_bits_data_to_bytes_data 函数

  • 函数功能:

将bits数据转换成bytes数据(每个字节对应一位)。

  • 函数原型:
ret_t tk_bits_data_to_bytes_data (uint8_t* bits, uint32_t bits_size, uint8_t* bytes, uint32_t bytes_size);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
bitsuint8_t*bits。
bits_sizeuint32_tbits内存的长度(字节数)。
bytesuint8_t*bytes。
bytes_sizeuint32_tbytes内存的长度(字节数)。

tk_bits_to_bytes 函数

  • 函数功能:

将bits数转换成bytes数。

  • 函数原型:
uint32_t tk_bits_to_bytes (uint32_t bits);
  • 参数说明:
参数类型说明
返回值uint32_t返回bytes。
bitsuint32_tbits。

tk_buffer_get_value 函数

  • 函数功能:

获取buffer中的值。

  • 函数原型:
ret_t tk_buffer_get_value (uint8_t* buffer, uint32_t size, value_type_t type, int16_t offset, int16_t bit_offset, value_t* value);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
bufferuint8_t*buffer。
sizeuint32_tbuffer的长度。
typevalue_type_t类型。
offsetint16_t偏移。
bit_offsetint16_t位偏移。
valuevalue_t*值。

tk_buffer_set_value 函数

  • 函数功能:

设置buffer中的值。

  • 函数原型:
ret_t tk_buffer_set_value (uint8_t* buffer, uint32_t size, value_type_t type, int16_t offset, int16_t bit_offset, const value_t* value);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
bufferuint8_t*buffer。
sizeuint32_tbuffer的长度。
typevalue_type_t类型。
offsetint16_t偏移。
bit_offsetint16_t位偏移。
valueconst value_t*值。

tk_count_char 函数

  • 函数功能:

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

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

tk_date_time_format 函数

  • 函数功能:

格式化时间。 格式规则:

  • Y 代表年(完整显示)
  • M 代表月(1-12)
  • D 代表日(1-31)
  • h 代表时(0-23)
  • H 代表时(1-12)
  • m 代表分(0-59)
  • s 代表秒(0-59)
  • w 代表星期(0-6)
  • W 代表星期的英文缩写
  • T 代表时段AM/PM
  • YY 代表年(只显示末两位)
  • MM 代表月(01-12)
  • DD 代表日(01-31)
  • hh 代表时(00-23)
  • HH 代表时(01-12)
  • mm 代表分(00-59)
  • ss 代表秒(00-59)
  • MMM 代表月的英文缩写

如 日期时间为:2018/11/12 9:10:20

  • "Y/M/D"显示为"2018/11/12"

  • "Y-M-D"显示为"2018-11-12"

  • "Y-M-D hⓂ️s"显示为"2018-11-12 9:10:20"

  • "Y-M-D hh:mm:ss"显示为"2018-11-12 09:10:20"

  • 函数原型:

ret_t tk_date_time_format (uint64_t time, const char* format, str_t* result);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
timeuint64_t时间。
formatconst char*格式化字符串。
resultstr_t*用于返回结果。

tk_distance 函数

  • 函数功能:

计算两点之间的距离。

  • 函数原型:
uint32_t tk_distance (int x1, int y1, int x2, int y2);
  • 参数说明:
参数类型说明
返回值uint32_t返回距离。
x1intx1。
y1inty1。
x2intx2。
y2inty2。

tk_eval_ratio_or_px 函数

  • 函数功能:

如果expr以px/PX结束,直接返回expr前面的数值。 如果expr以%结束,而且数值大于1,返回(数值 * value)/100。 否则将数值当作比例,返回(数值 * value)。

为了兼容以前的处理,如果expr以%结束,但是数值在0到1之间,此时忽略%。

c
tk_eval_ratio_or_px("0.5", 100) => 50
tk_eval_ratio_or_px("20px", 100) => 20
tk_eval_ratio_or_px("20%", 100) => 20
tk_eval_ratio_or_px("0.5%", 100) => 50
  • 函数原型:
float_t tk_eval_ratio_or_px (const char* expr, int32_t value);
  • 参数说明:
参数类型说明
返回值float_t返回计算结果。
exprconst char*表达式(如100px, 0.5等)
valueint32_t值。

tk_free_utf8_argv 函数

  • 函数功能:

释放utf8字符串数组。

  • 函数原型:
ret_t tk_free_utf8_argv (int argc, char** argv);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
argcint参数个数。
argvchar**参数。

tk_ftoa 函数

  • 函数功能:

将浮点型转换为字符串。

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

tk_int_is_in_array 函数

  • 函数功能:

检查整数是否在整数数组中。

  • 函数原型:
bool_t tk_int_is_in_array (int32_t v, const int32_t* array, uint32_t array_size);
  • 参数说明:
参数类型说明
返回值bool_t返回TRUE表示在,否则表示不在。
vint32_t整数。
arrayconst int32_t*整数数组。
array_sizeuint32_t整数数组中整数的个数。

tk_is_ui_thread 函数

  • 函数功能:

判断当前线程是否是UI线程。

  • 函数原型:
bool_t tk_is_ui_thread ();
  • 参数说明:
参数类型说明
返回值bool_t返回TRUE表示是,否则表示否。

tk_is_valid_name 函数

  • 函数功能:

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

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

tk_itoa 函数

  • 函数功能:

将整型转换为字符串。

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

tk_levelize 函数

  • 函数功能:

将value转换成level。 比如levels为"0-20;21-40;41-60;61-80;81-100",value为50,那么返回2。

  • 函数原型:
int32_t tk_levelize (const char* levels, int32_t value);
  • 参数说明:
参数类型说明
返回值int32_t返回level。
levelsconst char*级别字符串。
valueint32_t值。

tk_lltoa 函数

  • 函数功能:

将整型转换为字符串。

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

tk_memcpy 函数

  • 函数功能:

内存拷贝。 在地址对齐的情况下并且少于 64 个字节,效率会比 memcpy 要快,否则会退化为 memcpy。

  • 函数原型:
void* tk_memcpy (void* dst, const void* src, uint32_t len);
  • 参数说明:
参数类型说明
返回值void*返回成功返回 dst 地址,失败返回 NULL。
dstvoid*目标字符串。
srcconst void*源字符串。
lenuint32_t拷贝长度。

tk_memcpy16 函数

  • 函数功能:

拷贝数据2字节。

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

tk_memcpy32 函数

  • 函数功能:

拷贝数据4字节。

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

tk_memdup 函数

  • 函数功能:

内存拷贝。

  • 函数原型:
void* tk_memdup (const void* data, uint32_t len);
  • 参数说明:
参数类型说明
返回值void*返回指向的向新的内存指针,如果失败则返回NULL。
dataconst void*原内存。
lenuint32_t长度。

tk_memset16 函数

  • 函数功能:

设置数据2字节。

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

tk_memset24 函数

  • 函数功能:

设置数据3字节。

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

tk_memset32 函数

  • 函数功能:

设置数据4字节。

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

tk_mergesort 函数

  • 函数功能:

归并排序(如果需要稳定的排序,可以选择归并排序,而不是快速排序)。

  • 函数原型:
ret_t tk_mergesort (void* base, size_t nmemb, size_t size, tk_compare_t cmp);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
basevoid*数据。
nmembsize_t元素个数。
sizesize_t元素大小。
cmptk_compare_t比较函数。

tk_normalize_key_name 函数

  • 函数功能:

标准化key_name

  • 函数原型:
const char* tk_normalize_key_name (const char* name, char* fixed_name);
  • 参数说明:
参数类型说明
返回值const char*返回标准化后的字符串。
nameconst char*key_name。
fixed_namechar*保存标准化后的字符串。

tk_pixel_copy 函数

  • 函数功能:

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

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

tk_pointer_from_int 函数

  • 函数功能:

将int转换成指针。

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

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

tk_pointer_from_long 函数

  • 函数功能:

将long转换成指针。

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

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

tk_pointer_to_int 函数

  • 函数功能:

将指针转换成int。

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

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

tk_pointer_to_long 函数

  • 函数功能:

将指针转换成long。

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

  • 函数原型:
uint64_t tk_pointer_to_long (const void* p);
  • 参数说明:
参数类型说明
返回值uint64_t返回对应的long数据。
pconst void*指针。

tk_qsort 函数

  • 函数功能:

快速排序。

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

tk_replace_char 函数

  • 函数功能:

替换字符。

  • 函数原型:
char* tk_replace_char (char* str, char from, char to);
  • 参数说明:
参数类型说明
返回值char*返回str。
strchar*原字符串。
fromchar被替换的字符。
tochar替换成的字符。

tk_replace_locale 函数

  • 函数功能:

将文本中的$locale$替换为对应的语言。

  • 函数原型:
ret_t tk_replace_locale (const char* name, char* out, const char* locale);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
nameconst char*文本。
outchar*替换后保存的字符串。
localeconst char*语言。

tk_set_ui_thread 函数

  • 函数功能:

设置UI线程的ID。

  • 函数原型:
ret_t tk_set_ui_thread (uint64_t ui_thread_id);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
ui_thread_iduint64_tUI线程的ID。

tk_size_of_basic_type 函数

  • 函数功能:

获取基本类型的大小(字节数)。

  • 函数原型:
uint32_t tk_size_of_basic_type (value_type_t type);
  • 参数说明:
参数类型说明
返回值uint32_t返回大小。
typevalue_type_t类型。

tk_skip_chars 函数

  • 函数功能:

跳过字符串中的字符。

  • 函数原型:
const char* tk_skip_chars (const char* str, const char* chars);
  • 参数说明:
参数类型说明
返回值const char*返回跳过后的字符串。
strconst char*字符串。
charsconst char*字符集。

tk_skip_to_chars 函数

  • 函数功能:

跳到字符串中的字符。

  • 函数原型:
const char* tk_skip_to_chars (const char* str, const char* chars);
  • 参数说明:
参数类型说明
返回值const char*返回跳到的字符串。
strconst char*字符串。
charsconst char*字符集。

tk_skip_to_num 函数

  • 函数功能:

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

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

tk_snprintf 函数

  • 函数功能:

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

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

tk_sscanf 函数

  • 函数功能:

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

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

tk_sscanf_simple 函数

  • 函数功能:

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

TKC自己实现的,只支持几种简单的格式,在没有sscanf函数时使用。

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

tk_str_append 函数

  • 函数功能:

字符串追加函数。

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

tk_str_case_end_with 函数

  • 函数功能:

检查字符串是否以指定的字符串appendix结尾(忽略大小写)。

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

tk_str_case_start_with 函数

  • 函数功能:

检查字符串是否以指定的字符串prefix开头(忽略大小写)。

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

tk_str_copy 函数

  • 函数功能:

字符串拷贝函数。

XXX: 要求dst为NULL或内存块的首地址,本函数调用之后,dst可能无效,请保留返回的地址 该函数会自动申请内存,调用后需要使用TKMEM_FREE释放。

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

tk_str_end_with 函数

  • 函数功能:

检查字符串是否以指定的字符串appendix结尾。

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

tk_str_is_in_array 函数

  • 函数功能:

检查字符串是否在字符串数组中。

  • 函数原型:
bool_t tk_str_is_in_array (const char* str, const char** str_array, uint32_t array_size);
  • 参数说明:
参数类型说明
返回值bool_t返回TRUE表示在,否则表示不在。
strconst char*字符串。
str_arrayconst char**字符串数组。
array_sizeuint32_t字符串数组中字符串的个数。

tk_str_start_with 函数

  • 函数功能:

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

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

tk_str_tolower 函数

  • 函数功能:

将大写字母转换为小写字母。

修改传入的字符串。

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

tk_str_totitle 函数

  • 函数功能:

将单词首字母转换为大写字母。

修改传入的字符串。

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

tk_str_toupper 函数

  • 函数功能:

将小写字母转换为大写字母。

修改传入的字符串。

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

tk_strcmp 函数

  • 函数功能:

字符串比较函数。

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

tk_strcpy 函数

  • 函数功能:

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

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

tk_strdup 函数

  • 函数功能:

字符串拷贝函数。

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

tk_stricmp 函数

  • 函数功能:

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

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

tk_strlen 函数

  • 函数功能:

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

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

tk_strncpy 函数

  • 函数功能:

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

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

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

tk_strncpy_s 函数

  • 函数功能:

将src所指向的字符串复制到dst,最多复制min(dst_len-1, src_len)个字符串,并在[len]位置添加'\0'。 如果 dst 和 src 的地址对齐的话,效率会比 strncpy 高,如果小于 64 个字节的话,效率是最高的。

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

tk_strndup 函数

  • 函数功能:

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

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

tk_strnlen 函数

  • 函数功能:

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

  • 函数原型:
uint32_t tk_strnlen (const char* str, uint32_t maxlen);
  • 参数说明:
参数类型说明
返回值uint32_t返回字符串的长度。
strconst char*字符串。
maxlenuint32_t最大长度。

tk_strrstr 函数

  • 函数功能:

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

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

tk_strs_bsearch 函数

  • 函数功能:

在字符串数组中查找字符串。

  • 函数原型:
const char* tk_strs_bsearch (const char** strs, uint32_t nr, const char* str, bool_t case_sensitive);
  • 参数说明:
参数类型说明
返回值const char*返回找到的字符串。
strsconst char**字符串数组(已排序)。
nruint32_t字符串个数。
strconst char*字符串。
case_sensitivebool_t是否区分大小写。

tk_strtoi 函数

  • 函数功能:

将字符串转换为整型。

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

tk_strtol 函数

  • 函数功能:

将字符串转换为长整型。

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

tk_strtoll 函数

  • 函数功能:

将字符串转换为长整型。

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

tk_to_utf8_argv 函数

  • 函数功能:

将宽字符串数组转换成utf8字符串数组。

  • 函数原型:
char** tk_to_utf8_argv (int argc, wchar_t** argv);
  • 参数说明:
参数类型说明
返回值char**返回utf8字符串数组。
argcint参数个数。
argvwchar_t**参数。

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驼峰名字。
nameconst char*下划线名字。
outchar*驼峰名字(保存结果)。
max_out_sizeuint32_t结果最大长度。

tk_utf8_dup_wstr 函数

  • 函数功能:

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

  • 函数原型:
char* tk_utf8_dup_wstr (const wchar_t* str);
  • 参数说明:
参数类型说明
返回值char*返回UTF-8字符串(需要调用TKMEM_FREE释放)。
strconst wchar_t*字符串。

tk_value_to_angle 函数

  • 函数功能:

将value转换成角度。

  • 函数原型:
double tk_value_to_angle (double value, double min, double max, double start_angle, double end_angle, bool_t counter_clock_wise);
  • 参数说明:
参数类型说明
返回值double返回角度。
valuedouble值。
mindouble最小值。
maxdouble最大值。
start_angledouble开始角度。
end_angledouble结束角度。
counter_clock_wisebool_t是否逆时针。

tk_vsnprintf 函数

  • 函数功能:

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

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

tk_watob 函数

  • 函数功能:

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

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

tk_watof 函数

  • 函数功能:

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

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

tk_watoi 函数

  • 函数功能:

将宽字符串转换为整型。

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

tk_watoi_n 函数

  • 函数功能:

将宽字符串转换为整型。

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

tk_wild_card_match 函数

  • 函数功能:

简单的通配符匹配。*匹配0到多个字符,?匹配1个字符。 示例:

c
tk_wild_card_match("*c", "abc");
tk_wild_card_match("a?c", "abc");
  • 函数原型:
bool_t tk_wild_card_match (const char* pattern, const char* str);
  • 参数说明:
参数类型说明
返回值bool_t返回TRUE表示匹配,否则表示不匹配。
patternconst char*字符串。
strconst char*字符串。

tk_wstr_count_c 函数

  • 函数功能:

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

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

tk_wstr_dup_utf8 函数

  • 函数功能:

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

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

tk_wstr_select_word 函数

  • 函数功能:

获取字符串中距离某个位置最近的单词(中文或英文字符)或数字字符的范围,选取的范围由标点符号或空格分隔开,得到的范围由left与right两个指针获取。

  • 函数原型:
ret_t tk_wstr_select_word (const wchar_t* str, uint32_t len, uint32_t index, int32_t* left, int32_t* right);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
strconst wchar_t*字符串。
lenuint32_t字符串的长度。
indexuint32_t字符串中某个位置的下标。
leftint32_t*int32_t指针,用来获取范围结果的左边界值
rightint32_t*int32_t指针,用来获取范围结果的右边界值

tk_wstrcmp 函数

  • 函数功能:

字符串比较函数。

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

tk_wstrdup 函数

  • 函数功能:

宽字符串拷贝函数。

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

tk_wstricmp 函数

  • 函数功能:

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

  • 函数原型:
int32_t tk_wstricmp (const wchar_t* a, const wchar_t* b);
  • 参数说明:
参数类型说明
返回值int32_t如果返回值=-1,则表示a为NULL;如果返回值=1,则表示b为NULL;如果返回0,则表示a大于b;如果返回值=0,则表示a等于b。
aconst wchar_t*要进行比较的第一个字符串。
bconst 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表示成功,否则表示失败。
filenameconst char*文件名。
sstr_t*用于返回内容。

xml_file_expand_subfilenames_get 函数

  • 函数功能:

从xml文件中获取所有使用 导入的文件名称

  • 函数原型:
ret_t xml_file_expand_subfilenames_get (const char* filename, char*** subfilenames, uint32_t* size);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
filenameconst char*文件名。
subfilenameschar***用于返回文件名称集合。
sizeuint32_t*用于返回文件名称集合的大小。