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 | 需要解码的数据
  nsize | pdata的长度(字符数)
  sout | 输出区
  noutsize | 输出区长度(字符数)

返回
  返回字节数,输出带0结尾，空间不够返回-1; 当sout为nullptr时,返回需要的输出空间大小

## ◆ rdb_base64_encode()

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

base64快速编码

参数

  pdata | 需要编码的数据
  nsize | pdata的长度(字符数)
  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 | 需要编码的数据
  nsize | pdata的长度(字符数)
  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

参数

  sdatetime | ISO8601字符串格式时标或者本地时标格式。
  zlen | sdatetime的长度

返回
  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"
  zlen | str的长度(字符数)

返回
  返回实时库时间(从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则输出被截断。