salve! ho implementato una funzione in C che mi consenta (tramite cursori) di scorrere un database berkeley per effettuare delle ricerche! la funzione è la sottostante :
void cercaDBAutore(DB **dbpp, struct Libro *vett, char * search) {
DB *dbp;
dbp=*dbpp;
int ret;
DBC *cursorp;
DBT key, data;
char type[3]="usr";
libro book;
// azzero i DBTs prima di usarli
//memset(&key, 0, sizeof(DBT));
//memset(&data, 0, sizeof(DBT));
// crea il cursore
dbp->cursor(dbp, NULL, &cursorp, 0);
key.data = &type;
key.size = sizeof(char);
data.data = &book;
data.ulen = sizeof(libro);
data.flags = DB_DBT_USERMEM;
cursorp->close(cursorp);
//while ((ret = cursorp->get(cursorp, &key, &data, DB_NEXT)) == 0) {
// //if (strcmp(book.autore,search)==0) {
// // //vett[0]=book;
// //}
//}
//if (ret != DB_NOTFOUND) {
// errori
//}
}
search è una stinga, vett è un vettore di strutture di tipo libro!
quando inizializzo il cursore, inspiegabilmente mi dà segmentation fault! non riesco propio a capire il perchè... qualcuno può aiutarmi?
arrivederci