gpt4 book ai didi

c - GWAN Key-Value 持久化多存储

转载 作者:行者123 更新时间:2023-12-02 01:50:05 25 4
gpt4 key购买 nike

我想在持久模式下记录一个键值,但是当我想使用 2 个或更多不同的存储时它不起作用。

这是我的脚本:

    ...
typedef struct{
kv_t *kv;
char *name;
} kv_data;

int main(int argc, char *argv[])
{
kv_data **data = (kv_data**)get_env(argv, US_SERVER_DATA);
if(!data[0]){
data[0] = (kv_data*)calloc(1, sizeof(kv_data));
if(!data[0]){
return 500;
}
kv_t users;
kv_init(&users, "users", 10, 0, 0, 0);
data[0]->kv = &users;

kv_item item;
item.key = "pierre";
item.klen = sizeof("pierre") - 1;
item.val = "pierre@example.com";
item.flags = 0;
kv_add(data[0]->kv, &item);

data[0]->name = strdup("users");
}
...

此错误在第 15 行与 kv_init() 函数有关。

例如,我的愿望是使用 data[0]->kv 读取和记录“users”存储中的值,并且使用data[1]->kv 读取和记录其他 存储中的值...

最佳答案

我只是将包含我需要的所有 kv 存储的 kv 存储附加到持久性指针。 G-WAN kv 很快,加上记录数少,应该不会影响性能。

  xbuf_t *reply = get_reply(argv);
kv_t **kv_db = (kv_t **)get_env(argv, US_VHOST_DATA);

if (!kv_db[0])
{
kv_db[0] = (kv_t*) malloc(sizeof(kv_t));

if (!kv_db[0])
{
puts("Could not allocate memory for the v-host kv store");
return 500;
}

kv_init(kv_db[0], "kv_db", 10, 0, 0, 0);
}

kv_t *blog_db = (kv_t *) kv_get(kv_db[0], "blog_db", 7);

if (blog_db)
{
xbuf_cat(reply, "Blog already installed. GTFO.");
return 200;
}

blog_db = (kv_t *) malloc(sizeof(kv_t));
kv_init(blog_db, "blog_db", 0, 0, 0, 0);

if (!blog_db)
{
puts("Could not allocate memory for the blog kv store");
return 500;
}

_KV_ADD(kv_db[0], item, blog_db->name, blog_db, 0);

(_KV_ADD 是自定义宏)

关于c - GWAN Key-Value 持久化多存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com