最近我正在与Berkeley DB合作。我见过一些例子,其中人们在使用Berkeley DB创建数据库时使用“string”作为“key.data”的值。我想为它分配一个整数值。我怎样才能做到这一点?我应该在其中创建一个包含int成员的结构,还是有其他方法可以吗?
DBT key, data;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
key.data = "fruit";
key.size = sizeof("fruit");
因此,我想要分配一个整数值,而不是上面的“水果”。任何形式的帮助将不胜感激。
答案 0 :(得分:2)
DBT结构提供一个void *字段,用于指向您的字段 数据,以及标识数据长度的另一个字段。他们能 因此可用于存储从简单原始数据到的任何内容 复杂的结构,只要您想要存储的信息 驻留在一个连续的内存块中。
请参阅http://download.oracle.com/docs/cd/E17076_02/html/gsg/C/DBEntry.html
要存储整数,您可以将指向int的指针分配给key.data,例如:
int x = 42;
key.data = &x;
key.size = sizeof(x);