Vyvinul | GNOME Foundation |
---|---|
Poslední verze | 2.66.4 (17. prosince 2020 ) |
Pokročilá verze | 2.67.2 |
Vklad | gitlab.gnome.org/GNOME/glib.git |
Napsáno | Jazyk C. |
Operační systém | GNU / Linux , BSD ( d ) , Microsoft Windows a Mac OS |
životní prostředí | Cross-platform |
Číst formáty | Soubor INI |
Písemné formáty | Soubor INI |
Jazyky | Vícejazyčné |
Typ | manipulace s datovou strukturou |
Licence | GNU LGPL 2.1 |
Dokumentace | https://developer.gnome.org/glib/ |
webová stránka | library.gnome.org/devel/glib/ |
GLib (což by se nemělo zaměňovat s Glibcem , „knihovnou GNU C“) je bezplatná knihovna pro jazyk C a konkrétně pro programovací rozhraní GTK . Bez nahrazení standardní knihovny C přepíše určité její aspekty, například funkce pro zpracování alfanumerických řetězců a souborů nebo zpracování chyb volání; ale také implementuje propracované datové struktury : stromy , hashovací tabulky a seznamy . Tato knihovna nabízí hlavní funkce pro správu smyčky událostí GTK (kliknutí myší, stisknutí kláves, signály obecně): spouštěcí zásobník , halda paměti , zpětná volání .
Díky své velmi obecné povaze a bezplatné licenci lze tuto knihovnu použít k programování všech druhů aplikací, čímž se vyhneme určitým obtížím standardní knihovny C.
Původně to byla podmnožina funkcí, které mají usnadnit přenos kódu GTK na různé platformy tím, že budou typy (booleans, dlouhá celá čísla, ukazatele) stejný formát a velikost v bajtech; zejména kódování celých čísel představuje zvláštní problém s kompatibilitou: „ endismus “. V době koncepce GTK 2 (tehdy nazývané GTK + 2) se vývojáři rozhodli vyjmout z API GTK všechny negrafické funkce a vytvořit obecnou knihovnu: GLib. Nyní byla rozšířena o další funkce (zabezpečení adresování řetězců znaků, formáty data a času, správa místa na disku, systémová volání atd.).
GLib je součástí GTK balíčku z projektu GNU . Je distribuován za podmínek licence GNU LGPL .
Kromě přenositelnosti dat byl GLib navržen tak, aby poskytoval GTK strukturu jazykového objektu , která neexistuje v jazyce C. Jde o vytvoření abstraktního stromového typu:
GtkObject → GtkWidget → GtkContainer → GtkBin → GtkWindowGTK grafického okna (GtkWIndow) je skutečně komplikovaný objekt, jehož stav parametrů (poloha, velikost, barevná paleta, písma, možnosti interakce, viditelnost a činnosti) jsou uspořádány v hierarchické struktuře. Schematicky
Při úpravách okna je proto nutné spravovat komunikaci mezi těmito logickými vrstvami, aby byla aktualizace grafiky provedena správně.
GLib poskytuje nástroje, které umožňují tuto komunikaci mezi vrstvami:
Tyto nástroje jsou shromážděny v základní části GLib, GObject .
Glib umožňuje vytvářet a manipulovat s pokročilými datovými strukturami a jejich přidruženými makry (např. G_array_index () ):
GLib poskytuje funkce pro analýzu určitých strukturovaných dat (podmnožina XML , konfigurační soubory) nebo dekódování regulárních výrazů . Regulární výrazy poskytují cenný způsob, jak otestovat přítomnost vzoru v řetězci znaků nebo extrahovat část řetězce. Glib poskytuje funkce porovnání, řazení a extrakce pomocí standardní syntaxe regulárního výrazu POSIX .