diff options
| author | Thomas Schmucker <ts@its1.de> | 2026-07-11 23:02:44 +0200 |
|---|---|---|
| committer | Thomas Schmucker <ts@its1.de> | 2026-07-11 23:02:44 +0200 |
| commit | ab6cbd925c8d5ac9fd80da8285cbb11e9e41fca8 (patch) | |
| tree | 5f212838cccf2b5648cf8f98ed7e138ee381b675 | |
| parent | 48b649516e8077880690bc6873b48611e1a03513 (diff) | |
| download | use-berkeley-db-185-master.tar.gz use-berkeley-db-185-master.tar.bz2 use-berkeley-db-185-master.zip | |
| -rw-r--r-- | src/db-test.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/src/db-test.c b/src/db-test.c index 1538702..97793f8 100644 --- a/src/db-test.c +++ b/src/db-test.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | // Berkeley DB 1.85 | 7 | // Berkeley DB 1.85 |
| 8 | #include <db.h> | 8 | #include <db.h> |
| 9 | 9 | ||
| 10 | #define DATABASE_NAME "./database.db" | ||
| 10 | #define MODE 0600 | 11 | #define MODE 0600 |
| 11 | 12 | ||
| 12 | #define USERNAME_LENGTH 20 | 13 | #define USERNAME_LENGTH 20 |
| @@ -31,9 +32,9 @@ insert(DB *database) | |||
| 31 | DBT data = { .data = &users[i], .size = sizeof(users[i]) }; | 32 | DBT data = { .data = &users[i], .size = sizeof(users[i]) }; |
| 32 | DBT key = { .data = users[i].username, .size = strlen(users[i].username) }; | 33 | DBT key = { .data = users[i].username, .size = strlen(users[i].username) }; |
| 33 | 34 | ||
| 34 | int res = database->put(database, &key, &data, 0); | 35 | int error = database->put(database, &key, &data, 0); |
| 35 | if ( res == -1 ) { | 36 | if ( error ) { |
| 36 | (void) fprintf(stderr, "failed to insert data!\n"); | 37 | (void) fprintf(stderr, "Datensatz konnte nicht eingefügt werden!\n"); |
| 37 | } | 38 | } |
| 38 | } | 39 | } |
| 39 | } | 40 | } |
| @@ -44,9 +45,9 @@ update(DB *database, const char *username, int new_age) | |||
| 44 | DBT key = { .data = (void *) username, .size = strlen(username) }; | 45 | DBT key = { .data = (void *) username, .size = strlen(username) }; |
| 45 | DBT old_data; | 46 | DBT old_data; |
| 46 | 47 | ||
| 47 | int res = database->get(database, &key, &old_data, 0); | 48 | int error = database->get(database, &key, &old_data, 0); |
| 48 | if ( res != 0 ) { | 49 | if ( error ) { |
| 49 | (void) fprintf(stderr, "update: Datensatz %s nicht gefunden!\n", username); | 50 | (void) fprintf(stderr, "Datensatz %s nicht gefunden!\n", username); |
| 50 | return; | 51 | return; |
| 51 | } | 52 | } |
| 52 | 53 | ||
| @@ -60,20 +61,21 @@ update(DB *database, const char *username, int new_age) | |||
| 60 | .size = sizeof user | 61 | .size = sizeof user |
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | res = database->put(database, &key, &new_data, 0); | 64 | error = database->put(database, &key, &new_data, 0); |
| 64 | 65 | ||
| 65 | if ( res != 0 ) { | 66 | if ( error ) { |
| 66 | (void) fprintf(stderr, "update: Datensatz %s wurde nicht aktualisiert\n", username); | 67 | (void) fprintf(stderr, "Datensatz %s wurde nicht aktualisiert\n", username); |
| 67 | } | 68 | } |
| 68 | } | 69 | } |
| 69 | 70 | ||
| 70 | void delete(DB *database, const char *username) | 71 | void |
| 72 | erase(DB *database, const char *username) | ||
| 71 | { | 73 | { |
| 72 | DBT key = { .data = (void *) username, .size = strlen(username) }; | 74 | DBT key = { .data = (void *) username, .size = strlen(username) }; |
| 73 | 75 | ||
| 74 | int res = database->del(database, &key, 0); | 76 | int error = database->del(database, &key, 0); |
| 75 | if ( res != 0 ) { | 77 | if ( error ) { |
| 76 | (void) fprintf(stderr, "update: Datensatz %s wurde nicht gelöscht\n", username); | 78 | (void) fprintf(stderr, "Datensatz %s wurde nicht gelöscht\n", username); |
| 77 | } | 79 | } |
| 78 | } | 80 | } |
| 79 | 81 | ||
| @@ -83,8 +85,8 @@ lookup(DB *database, const char *username) | |||
| 83 | DBT key = { .data = (void *) username, .size = strlen(username) }; | 85 | DBT key = { .data = (void *) username, .size = strlen(username) }; |
| 84 | DBT data; | 86 | DBT data; |
| 85 | 87 | ||
| 86 | int res = database->get(database, &key, &data, 0); | 88 | int error = database->get(database, &key, &data, 0); |
| 87 | if ( res == 0 ) { | 89 | if ( !error ) { |
| 88 | user_type *user = data.data; | 90 | user_type *user = data.data; |
| 89 | printf("%.*s -> %s (%d)\n", (int) key.size, (char *) key.data, user->fullname, user->age); | 91 | printf("%.*s -> %s (%d)\n", (int) key.size, (char *) key.data, user->fullname, user->age); |
| 90 | } | 92 | } |
| @@ -96,19 +98,19 @@ list(DB *database) | |||
| 96 | DBT key; | 98 | DBT key; |
| 97 | DBT data; | 99 | DBT data; |
| 98 | 100 | ||
| 99 | int err = database->seq(database, &key, &data, R_FIRST); | 101 | int error = database->seq(database, &key, &data, R_FIRST); |
| 100 | while ( !err ) { | 102 | while ( !error ) { |
| 101 | user_type *user = data.data; | 103 | user_type *user = data.data; |
| 102 | printf("%.*s -> %s (%d)\n", (int) key.size, (char *) key.data, user->fullname, user->age); | 104 | printf("%.*s -> %s (%d)\n", (int) key.size, (char *) key.data, user->fullname, user->age); |
| 103 | 105 | ||
| 104 | err = database->seq(database, &key, &data, R_NEXT); | 106 | error = database->seq(database, &key, &data, R_NEXT); |
| 105 | } | 107 | } |
| 106 | } | 108 | } |
| 107 | 109 | ||
| 108 | int | 110 | int |
| 109 | main(void) | 111 | main(void) |
| 110 | { | 112 | { |
| 111 | DB *database = dbopen("./database.db", O_RDWR | O_CREAT, MODE, DB_BTREE, NULL); | 113 | DB *database = dbopen(DATABASE_NAME, O_RDWR | O_CREAT, MODE, DB_BTREE, NULL); |
| 112 | if ( database == NULL ) { | 114 | if ( database == NULL ) { |
| 113 | (void) fprintf(stderr, "Datenbank konnte nicht geöffnet werden\n"); | 115 | (void) fprintf(stderr, "Datenbank konnte nicht geöffnet werden\n"); |
| 114 | return EXIT_FAILURE; | 116 | return EXIT_FAILURE; |
| @@ -118,7 +120,7 @@ main(void) | |||
| 118 | 120 | ||
| 119 | lookup(database, "user1"); | 121 | lookup(database, "user1"); |
| 120 | 122 | ||
| 121 | delete(database, "user1"); | 123 | erase(database, "user1"); |
| 122 | 124 | ||
| 123 | update(database, "datengott", 50); | 125 | update(database, "datengott", 50); |
| 124 | 126 | ||
