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ů!
GLib: Obousměrné seznamy (2)
Minule jsme se zakousli do kapitoly o obousměrných seznamech. Naučili jsme se základní operace s těmito datovými typy. Dnes se pustíme do trochu odvážnější manipulace s nimi.
GLib: Obousměrné seznamy
Obousměrný seznam je datový typ jako vystřižený z učebnice programování. Obvykle se na něm učí použití pointerů a datových struktur. Všichni ale jistě s pointery pracovat umíme a tak ode dneška, když budeme potřebovat obousměrné seznamy, je nebudeme programovat sami, ale zkušeně sáhneme po knihovně GLib, která je pro nás implementuje.
GLib: Pole (3)
Dnešním pokračováním završíme výklad o polích knihovny GLib. Probereme si práci s automaticky rostoucími poli bajtů.
GLib: Pole (2)
Pracovat s automaticky rostoucími poli jsme se naučili v minulém díle. Dnes nás čeká další výklad o polích knihovny GLib - tentokrát o speciálních polích pointerů.
GLib: Pole
Pole (arrays) knihovny GLib jsou podobné polím ze standardního jazyka C. Jejich předností však je, že se automaticky zvětšují s tím, jak do nich přidáváte nové prvky.
GLib: Bleskové operace s pamětí (3)
V minulých dílech jsme si ukázali, jak s knihovnou GLib urychlit alokace paměti použitím tzv. Memory Chunks. Dnes se zaměříme na využití tohoto mechanizmu při dynamické alokaci řetězců.
GLib: Bleskové operace s pamětí (2)
Minule jsme nakousli zajímavé téma o možnosti urychlení alokace paměti pomocí GMemChunků. Dnes se podíváme na další funkce pro práci s nimi.
GLib: Bleskové operace s pamětí
V dnešním díle věnovaném knihovně GLib si povíme něco o možnostech urychlení operací alokace paměti.
GLib: Práce s řetězci (3)
Práce s řetězci je ve standardním céčku trochu nemotorná. Musíte si neustále hlídat, kolik jste alokovali paměti. GLib přichází s novým řetězcovým typem GString, který vás rázem zbaví všech nepříjemností. GString je vlastně takový "nafukovací řetězec", který v paměti automaticky roste s tím, jak do něj přidáváte text.
GLib: Práce s řetězci (2)
V minulém díle jsme začali rozebírat možnosti, které přináší knihovna GLib pro práci se standardními céčkovskými řetězci ukončenými nulovým znakem. Dnes toto povídání dokončíme. Budeme se bavit o odstraňování bílých znaků, spojování řetězců dohromady a rozdělování řetězce na pole řetězců. Látky je víc než dost, takže hurá do toho.
GLib: Práce s řetězci (1)
Dnešním dílem pokračujeme v popisu knihovny jazyka C - GLib. Zaměříme se na funkce usnadňující práci s řetězci ukončenými nulovým znakem \0.
GLib: Práce s pamětí, typová konverze
Tvůrcům knihovny GLib (šířené podle licence LGPL) patrně nestačily funkce standardního Céčka pro alokování a uvolňování paměti, tak si dodefinovali pár vlastních a my se je dnes naučíme používat. Kromě toho si také povíme něco o typové konverzi z pointeru na integer a naopak.
GLib: Začínáme aneb základní datové typy
GLib je knihovna funkcí pro jazyk C implementující jakési základní stavební kameny programu. Je užívaná mnoha solidními projekty (např. knihovnou Gtk, na které stojí mnoho aplikací pro X-Window). 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. Autoři se nespokojili jen s kvalitními algoritmy - rázně vykročili také k přenositelnosti zdrojáků nejen mezi Unixy, ale dokonce i na Windows.

