[[oktatas:linux|< Linux]] ====== Adatbázisok ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2020 * [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== GDBM ===== A GNU dbm, rövdien GDBM, egy adatbázis függvényeket tartalmazó programozói könyvtár, hasonlít a UNIX dbm-hez. A dbm egy úgynevezett hasított adatbázis, amely kulcs, adat párokat tartalmaz. apt install libgdbm-dev Használható fejállományok telepítés után: * dbm.h * gdbm-ndbm.h * gdbm.h man gdbm ===== Kulcsok és adatok ===== A kulcsokat és az adatokat egy datum nevű struktúrában tároljuk: typedef struct { char *dptr; int dsize; } datum; ===== Használat ===== #include int main() { GDBM_FILE fp; fp = gdbm_open("valami.db", 512, GDBM_WRCREAT, 0666, 0 ); datum key = { "nev1", 4 }; datum value = { "Nagy Janos", 10 }; gdbm_store(fp, key, value, GDBM_INSERT); gdbm_close(fp); } Fordítás: gcc -o prog prog.c -lgdbm A harmadik paraméter jelzők: * GDBM_READER * GDBM_WRITER * GDBM_WRCREAT * GDBM_NEWDB Szintaxis: gdbm_open (const char *name, int block_size, int flags, int mode, void (*fatal_func)(const char *)) int gdbm_store (GDBM_FILE dbf, datum key, datum content, int flag) * GDBM_REPLACE * GDBM_INSERT int gdbm_close (GDBM_FILE dbf) ===== Eszközök ===== Kész eszközök telepítése: apt install gdbmtool Indítás: gdbmtool Indítható egy fájl megnyitásáva: gdbm_dump fajl.db gdbmtool> store KEY? nev1 DATA? Nagy Janos gdbmtool> list nev1 Nagy Janos gdbmtool> store nev2 "Baranyi Ferenc" Dump: gdbm_dump fajl.db ===== Linkek ===== * http://en.wikipedia.org/wiki/Dbm * http://www.gnu.org.ua/software/gdbm/