我想以持久化模式记录键值,但当我想要使用两个或更多不同的存储时,它无法正常工作。
这是我的脚本:
...
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");
}
...
这个错误在kv_init()函数的第15行。
我的建议是,例如使用data[0]->kv来读取和记录“users”存储中的值,并使用data[1]->kv来读取和记录other存储中的值...