Estou tentando ler e gravar o banco de dados RPM localizado em / var / lib / rpm no CentOS 5 e, eventualmente, outros tipos de sistema (CentOS 6, RHEL, etc.)
O problema é que não sei qual versão do Berkeley DB está sendo usada.
O comando file
no arquivo de banco de dados relata "data".
Eu tentei abrir o banco de dados usando o Berkeley DB versões 3.3, 4.4 e 6.1, mas isso falha com o "argumento inválido".
Aqui está o código que estou usando (isso para 4.4 / 6.1)
int main()
{
#define DATABASE "__db.001"
DB *dbp;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
fprintf(stderr, "db_create: %s\n", db_strerror(ret));
exit (1);
}
if ((ret = dbp->open(
dbp, NULL, DATABASE, NULL, DB_UNKNOWN, 0, 0664)) != 0) {
dbp->err(dbp, ret, "%s", DATABASE);
exit(1);
}
}
Alguma dica sobre o que está errado?