【发布时间】:2011-08-17 17:27:15
【问题描述】:
我是 C 的新手,两个月以来一直在研究它。我有一个如下所示的结构:
struct profile_t
{
unsigned char length;
unsigned char type;
unsigned char *data;
};
typedef struct profile_datagram_t
{
unsigned char *src;
unsigned char *dst;
unsigned char ver;
unsigned char n;
struct profile_t profiles[MAXPROFILES];
} header;
header outObj;
现在结构元素内的值被读取为outObj.src[i]、outObj.dst[i]和outObj.profiles[i].type。
现在我想调用一个函数并将我读取的值传递给一个实际上是 Berkeley DB 的函数。
void main()
{
struct pearson_record {
unsigned char src[6];
unsigned char dst[6];
unsigned char type;
};
DB *dbp;
int ret;
if ((ret = db_create(&dbp, dbenv, 0)) !=0)
handle_error(ret);
if ((ret = dbp->open(dbp, NULL, "pearson.db", NULL, DB_BTREE, DB_CREATE, 0600)) !=0)
handle_error(ret);
const DBT *pkey;
const DBT *pdata;
struct pearson_record p;
DBT data, key;
memset(&key, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
memset(&s, 0, sizeof(struct pearson_record));
现在上面的代码是通过查看 DB 参考指南中的示例编写的。但我不明白const DBT 是什么。他们还使用memcopy 在结构内部添加了值,我知道这是正确的方法,但现在我想memcopy 传递上面提到的值并将它们存储在结构pearson_record 中。我该怎么办?任何形式的帮助将不胜感激。
【问题讨论】:
标签: c function berkeley-db