如何使用C在Berkeley DB中为“key.data”分配整数值

时间:2011-08-25 17:59:10

标签: c berkeley-db

最近我正在与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");

因此,我想要分配一个整数值,而不是上面的“水果”。任何形式的帮助将不胜感激。

1 个答案:

答案 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);