[[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/