rdbapi 5.1.1.9
实时数据库C接口 for windows/Linux
 
载入中...
搜索中...
未找到
工具函数

函数

long long rdb_time ()
 获取当前时间的实时库时标
 
long long rdb_localtime2rdbtime (int nyear, int nmon, int nday, int nhour, int nmin, int nsec, int nmsec)
 本地时间合成为实时库时标T_TIME
 
bool rdb_rdbtime2localtime (T_TIME ltime, int *pnyear, int *pnmon, int *pnday, int *pnhour, int *pnmin, int *pnsec, int *pnmsec)
 实时库时标T_TIME分解为本地时间
 
int rdbtime_tostr (int64_t ltime, char *sout, size_t outsize)
 实时库时间(从1970-1-1开始的100毫秒数)转换为字符串
 
int64_t rdbtime_fromstr (const char *str, size_t zlen)
 本地字符串表达的时间转换为实时库时间
 
void rdb_md5_encode (const void *pdata, int nsize, unsigned char out[16])
 计算md5散列值
 
int rdb_base64_encode (const void *pdata, int nsize, char *sout, int noutsize)
 base64快速编码
 
int rdb_base64_decode (const char *pdata, int nsize, unsigned char *sout, int noutsize)
 base64快速解码
 
const char * rdb_geterrmsg (int nerrcode)
 根据错误码获取错误描述
 
int rdb_gbk2utf8 (const char *sgbk, size_t gbksize, char *sout, size_t outsize)
 GBK转UTF8
 
int rdb_utf82gbk (const char *sutf8, size_t utf8size, char *sout, size_t outsize)
 UTF8转GBK
 
int rdb_jtime2string (long long jtime, char *out, size_t outsize, int useLocalTimeZone)
 js时标转ISO8601格式字字符串时标,例"2023-2-20T12:10:32.123+08:00"
 
long long rdb_string2jtime (const char *sdatetime, size_t zlen)
 ISO8601字符串格式的时标转换为jtime(int64, 自1970-1-1开始的毫秒数,UTC时标(0时区))
 

详细描述

时标转换,字符串编码转换, MD5散列,base64编码/解码等相关工具函数。

函数说明

◆ rdb_base64_decode()

int rdb_base64_decode ( const char * pdata,
int nsize,
unsigned char * sout,
int noutsize )

base64快速解码

参数
pdata需要解码的数据
nsizepdata的长度(字符数)
sout输出区
noutsize输出区长度(字符数)
返回
返回字节数,输出带0结尾,空间不够返回-1; 当sout为nullptr时,返回需要的输出空间大小

◆ rdb_base64_encode()

int rdb_base64_encode ( const void * pdata,
int nsize,
char * sout,
int noutsize )

base64快速编码

参数
pdata需要编码的数据
nsizepdata的长度(字符数)
sout输出区
noutsize输出区长度(字符数)
返回
返回字节数,输出带0结尾,空间不够返回-1; 当sout为nullptr时,返回需要的输出空间大小

◆ rdb_gbk2utf8()

int rdb_gbk2utf8 ( const char * sgbk,
size_t gbksize,
char * sout,
size_t outsize )

GBK转UTF8

自从
rdb2024.9 inver 5119
参数
sgbk输入的GBK
gbksize输入的GBK长度(字节数)
sout输出区,成功输出后会在最末尾添加0
outsize输出区长度
返回
返回转换后的字节数(不含结束符0),-1表示失败。

◆ rdb_geterrmsg()

const char * rdb_geterrmsg ( int nerrcode)

根据错误码获取错误描述

参数
nerrcode错误码
返回
返回错误信息。

◆ rdb_jtime2string()

int rdb_jtime2string ( long long jtime,
char * out,
size_t outsize,
int useLocalTimeZone )

js时标转ISO8601格式字字符串时标,例"2023-2-20T12:10:32.123+08:00"

自从
rdb2024.9 inver 5119
参数
jtime自1970-1-1开始的毫秒数,UTC时标(0时区)
out输出的字符串缓冲区,
outsize输出字符串缓冲区大小,建议大于等于32字节;
useLocalTimeZone输出时使用本地时区;0:不使用; 1:使用本地时区
返回
转换的字节数
备注
useLocalTimeZone=1 输出"2024-9-20T12:10:32.123+08:00"; =0输出 "2029-9-20T4:10:32.123Z"

◆ rdb_localtime2rdbtime()

long long rdb_localtime2rdbtime ( int nyear,
int nmon,
int nday,
int nhour,
int nmin,
int nsec,
int nmsec )

本地时间合成为实时库时标T_TIME

参数
nyear[in] 年1970-...
nmon[in] 月1-12
nday[in] 日1-31
nhour[in] 时0-23
nmin[in] 分0-59
nsec[in] 秒0-59
nmsec[in] 毫秒0-999
返回
返回实时库时标T_TIME

◆ rdb_md5_encode()

void rdb_md5_encode ( const void * pdata,
int nsize,
unsigned char out[16] )

计算md5散列值

参数
pdata需要编码的数据
nsizepdata的长度(字符数)
out输出区,最小16字节

◆ rdb_rdbtime2localtime()

bool rdb_rdbtime2localtime ( T_TIME ltime,
int * pnyear,
int * pnmon,
int * pnday,
int * pnhour,
int * pnmin,
int * pnsec,
int * pnmsec )

实时库时标T_TIME分解为本地时间

参数
ltime[in] 实时库时标
pnyear[out]
pnmon[out]
pnday[out]
pnhour[out]
pnmin[out]
pnsec[out]
pnmsec[out]
返回
返回true表示成功,false表示失败

◆ rdb_string2jtime()

long long rdb_string2jtime ( const char * sdatetime,
size_t zlen )

ISO8601字符串格式的时标转换为jtime(int64, 自1970-1-1开始的毫秒数,UTC时标(0时区))

自从
rdb2024.9 inver 5119
参数
sdatetimeISO8601字符串格式时标或者本地时标格式。
zlensdatetime的长度
返回
int64, -1:时标,大于等于0成功, 自1970-1-1开始的毫秒数,UTC时标(0时区)
备注
sdatetime 支持以下格式:
ISO 8601
2023-2-31T04:32:25.987Z
2023-2-31T12:32:25.987+0800
2023-2-31T12:32:25.987+08:00
2023-2-31T12:32:25+08:00
2023-2-31T12:32+08:00
2023-2-31T12+08:00
2023-2-31Z
local datetime
2023-1-31 12:32:25.987
2023-1-31 12:32:25
2023-1-31 12:32
2023-1-31 12
2023-1-31

◆ rdb_time()

long long rdb_time ( )

获取当前时间的实时库时标

返回
返回当前时间的T_TIME值

◆ rdb_utf82gbk()

int rdb_utf82gbk ( const char * sutf8,
size_t utf8size,
char * sout,
size_t outsize )

UTF8转GBK

自从
rdb2024.9 inver 5119
参数
sutf8输入的UTF8字符串
utf8size输入的UTF8长度(字节数)
sout输出区,成功输出后会在最末尾添加0
outsize输出区长度
返回
返回转换后的字节数(不含结束符0),-1表示失败。

◆ rdbtime_fromstr()

int64_t rdbtime_fromstr ( const char * str,
size_t zlen )

本地字符串表达的时间转换为实时库时间

参数
str字符串,比如"2019/12/3 12:24:56.200" 或者 "2019/12/3 12:24:56"
zlenstr的长度(字符数)
返回
返回实时库时间(从1970-1-1开始的100毫秒数)

◆ rdbtime_tostr()

int rdbtime_tostr ( int64_t ltime,
char * sout,
size_t outsize )

实时库时间(从1970-1-1开始的100毫秒数)转换为字符串

参数
ltime实时库时间
sout输出空间
outsize输出空间大小(字节数)
返回
返回输出的字符数,意义同snprintf德返回值,如果错误返回-1; 如果返回值大于等于outsize则输出被截断。