GLib

GLib

Informace
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.

Rozvoj

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 .

Potřeba GLib

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 → GtkWindow

GTK 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 .

Obsah

Bezpečné funkce pro řetězce a pole

Pokročilé datové struktury

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 () ):

Interakce s uživatelem

Analýza běžných strukturovaných souborů

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 .

Bibliografie

Poznámky a odkazy

  1. Viz Andrew Krause, Základy vývoje GTK +. Hlas odborníka v otevřeném zdroji. , Apress,2007, 630  str. ( ISBN  978-1-59059-793-4 a 1-59059-793-1 ) , s.  5
  2. Viz Peter Wright, začátek programování GTK + / GNOME , Wrox,2000( ISBN  978-1-86100-381-2 ) , „Ovládání rozvržení uživatelského rozhraní“, str.  92-97.
  3. Mettier , str.  106-114.
  4. Srovnej Cl. Delannoy, programování v jazyce C , Paříž, Eyrolles,2009, 267  s. ( ISBN  978-2-212-12546-7 , číst online ) , "8. Řetězce znaků", s.  145
  5. Mettier , str.  81.
  6. Mettier , str.  93.
  7. Viz např. B. Klemens, 21. století C , O'Reilly,2015( ISBN  978-1-4919-0389-6 ) , „6. Your Pal the Pointer“, str.  139-140
  8. Viz např. N. Kalicharan, Datové struktury v jazyce C , CreateSpace Independent Publ.,2012, 330  s. ( ISBN  978-1-4382-5327-5 ) , "3. Propojené seznamy"
  9. Mettier , str.  58-61.
  10. Mettier , str.  62.
  11. Mettier , str.  68-76.

Dodatky

externí odkazy