Hlavní navigace

Seriál GLib - knihovna funkcí pro jazyk C

GLib je knihovna funkcí pro jazyk C implementující jakési základní stavební kameny programu. Naleznete zde nástroje pro komfortní práci s řetězci a poli proměnné velikosti, práci se seznamy, stromy, hashovacími tabulkami či poměrně komplikovanými metodami jako je použití vláken (threads), run-time zavádění modulů (plug-inů) a tak dále.

GLib: Užitečnosti všeho druhu (2)

Dnes nás kromě popisu několika dalších drobných utilit čeká i povídání o tom, co GLib dělá pro to, aby programy napsané v Unixu šlo zkompilovat i ve Windows.

GLib: Užitečnosti všeho druhu

V dnešním pokračovaní si ukážeme sadu funkcí těžko zařaditelnou do nějaké konkrétní skupiny. Zkrátka a dobře, jsou to různé rutiny, které se občas hodí. Knihovna GLib garantuje, že jsou přenositelné i na jiné platformy, a to je jistě příjemné.

GLib: Machrování s kalendářem

Na to, že GLib zasahuje do mnoha oblastí programátorské praxe, jste si už jistě zvykli. Je to zkrátka holka pro všechno. Částí, kterou si dnes popíšeme, jsou nástroje pro kalendářní počty.

GLib: Lexikální scanner (6)

Dnešním dílem dokončíme výklad o propracovaném nástroji knihovny GLib - lexikálním scanneru. Povíme si něco o obsluze chybových stavů, generování chybových hlášení a dalších funkcích.

GLib: Lexikální scanner (5)

Dnes se ve výkladu o lexikálním scanneru pohneme zase o kus dál. Probereme si podrobně obory platnosti symbolů a proces čtení tokenů.

GLib: Lexikální scanner (4)

Dnes nás čeká dokončení výkladu o konfiguraci lexikálního scanneru.

GLib: Lexikální scanner (3)

V dnešním díle se podíváme na bohaté možnosti ovlivňování chování lexikálního scanneru.

GLib: Lexikální scanner (2)

Hlubší pohled na lexikální scanner knihovny GLib, struktura GScanner, typy tokenů a vytvoření nového scanneru.

GLib: Lexikální scanner

Dnešním dílem začíná v našem popisu funkcí knihovny GLib poněkud rozsáhlejší kapitola: lexikální scanner. Lexikální scanner je propracovaný mechanismus usnadňující programování úloh spočívajících ve čtení textu. Užitečný je zejména při vyhodnocování konfiguračních souborů aplikací.

GLib: Relace (2)

Minule jsme začali výklad o posledním datovém typu knihovny GLib - relacích GRelation. Dnes povídání o nich dokončíme. Ukážeme si ještě pár funkcí, které při práci s relačními tabulkami můžete potřebovat a také obvyklou ukázku použití.

GLib: Relace

Posledním datovým typem, který si v tomto seriálu probereme, budou jednoduché relační tabulky GRelation.

GLib: Cache (2)

Minule jsme načali téma o mechanizmu pro úsporu paměti - "keších" knihovny GLib. Dnes nás čeká ještě pár detailů o tomto nástroji a příklad ze života, na kterém si použití GCache demonstrujeme.

GLib: Cache

Pod pojmem "cache" v knihovně GLib nenajdete přesně to, co znamená cache v terminologii kolem hardwaru. Nejedná se o vyrovnávající paměť zrychlující práci s pomalými zařízeními, ale i tak je to docela užitečný mechanizmus, který občas můžete potřebovat.

GLib: Stopky

Po krátké odmlce se opět setkáváme u pravidelného seriálu pro programátory v jazyku C o knihovně GLib. Abychom po přestávce nezačínali něčím obtížnějším, čeká nás dnes trochu odpočinkové téma. Ukážeme si, jak měřit čas pomocí jednoduchých stopek knihovny GLib.

GLib: Alokování paměti pro seznamy a stromy

Když jsme probírali stromy a jednosměrné a obousměrné seznamy, slíbil jsem vám, že se v některém z dalších dílů vrátíme zpět a povíme si něco o tom, jak seznamy a stromy pracují s pamětí, aby dosáhly co největší rychlosti. Dnešním pokračováním svůj slib plním.

GLib: Soupravy dat (2)

V dnešním díle vyprávění o soupravách dat dokončíme.

GLib: Soupravy dat

Soupravy dat najdou své uplatnění všude tam, kde potřebujete jaksi "rozšířit" možnosti funkcí jiných knihoven. Umožňují programátorům napojit na jiné datové typy další přídavné datové položky.

GLib: Klíčované seznamy dat (2)

Dokončení výkladu o klíčovaných seznamech dat.

GLib: Klíčované seznamy dat

Pokud seriál článků o knihovně GLib sledujete pravidelně, setkali jste se už s "nafukovacími" řetězci a poli automaticky měnícími svou velikost podle potřeby a podobně. Dnes se vám pokusím představit něco jako "nafukovací" strukturu (typ podobný záznamům struct). Její prvky mohou ale měnit svůj typ, velikost i počet.

GLib: Kvarky

Kvarky (Quarks) je nástroj umožňující oboustranné spojení řetězce s jednoznačnou přirozenou konstantou. Znáte-li řetězec, lze z něj určit jeho číslo a naopak, z konstanty můžete získat odpovídající řetězec.

GLib: Mnohonásobné stromy (4)

Dnes výklad o mnohonásobných stromech dokončíme. Čekají nás i nějaké příklady ze života.

GLib: Mnohonásobné stromy (3)

Pokračování výkladu o mnohonásobných stromech.

GLib: Mnohonásobné stromy (2)

Dnešní díl je zaměřen na rozsáhlé možnosti a způsoby procházení rozvětvenými stromy.

GLib: Mnohonásobné stromy

Budete-li někdy potřebovat obecný datový typ strom s tím, aby s ním šlo vytvářet jakkoliv košaté stromy, vzpomeňte si na knihovnu GLib a její mnohonásobné stromy.

GLib: Binární stromy (2)

Dokončení výkladu o binárních stromech v jazyce C s knihovnou GLib.

GLib: Binární stromy

Binární stromy, podobně jako hashe, slouží k rychlé orientaci v datech. Umožňují promptní vyhledávání a procházení daty podle různých kritérií.

GLib: Hash tabulky (2)

Minule jsme si začali ukazovat docela užitečný mechanizmus: hashování. Pojďme se dnes podívat na práci se záznamy v hash tabulkách.

GLib: Hash tabulky

Hash tabulky, nebo chcete-li asociativní pole, představují výkonný programátorský nástroj. Jde o speciální typ, který realizuje spojení dat s jejich jednoznačným klíčem, takže pokud zadáte klíč, data mohou být v hash tabulce díky výkonným algoritmům velice rychle nalezena.

GLib: Jednosměrné seznamy

V dnešní kapitole o knihovně GLib si představíme jednosměrné seznamy. Jelikož jejich podobnost s obousměrnými seznamy je natolik výrazná, že opětovným popisováním funkcí bychom se vlastně nic nového nedověděli, rozhodl jsem se dnešní výklad pojmout trochu jinou formou.

GLib: Automatické doplňování řetězců

Líbí se vám, jak třeba příkazový procesor "uhádne" konec příkazu poté, co napíšete pár prvních znaků a stisknete tabulátor? Chtěli byste podobnou vlastnost zakomponovat do svých programů? Proč vymýšlet již vymyšlené - používejte knihovnu GLib a její automatické doplňování řetězců!