c - 不使用 C 在 Berkeley DB 中打印 "key.data"的正确值

标签 c berkeley-db

我是 Berkeley DB 的新手,正在使用在线指南进行学习。现在我有以下代码:

DB *dbp;
DBT key, data;
int ret, t_ret;
int k = 1;

key.data = &(k);
key.size = sizeof(k);
memset(&key, 0, sizeof(key));

if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
{
    printf("db: %d: key stored.\n", (char*)key.data);
}

现在 printf 语句不是返回值“1”,而是返回其他值。不知道我哪里错了。

最佳答案

由于 key.data 是一个 void*,您需要取消引用它以获取值。尝试:

printf("db: %d: key stored.\n", *(int*)key.data);

关于c - 不使用 C 在 Berkeley DB 中打印 "key.data"的正确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200588/

相关文章:

c - AVX2 1GB长阵列

c++ - C++ 中字符串到十六进制值的转换

c - 局部变量过多和堆栈基指针偏移溢出

c - 对 sscanf 用法缺乏了解

linux - 如何读取 var/lib/rpm/Packages 内容

c - memcpy 段错误看似无害

java - Berkeley DB Java 版是否支持非相等搜索?

berkeley-db - Berkeley DB 文件拆分

C pthread 互斥量

c - 伯克利数据库部分匹配