GLib — низкоуровневая библиотека, расширяющая возможности, предоставляемые стандартной библиотекой libc языка C.
Разрабатываемая в рамках и лежащая в основах проектов GTK и GNOME, GLib широко используется в приложениях, в том числе и неграфических. Выпуск очередной версии библиотеки по времени обычно совпадает с выпуском новой версии GTK.
GLib предоставляет основную объектную систему, используемую в GNOME, реализацию основного цикла, а также обширный набор вспомогательных функций для строк и типовых структур данных.
На данный момент GLib способна работать на многих UNIX-подобных операционных системах, а также MS Windows, OS/2 и BeOS.
Возможности
GLib предоставляет следующие возможности:
- большой набор базовых и производных типов данных;
- макросы и развитый механизм отладочных сообщений;
- строковые функции;
- функции для преобразования кодировок и поддержки юникода;
- встроенные макросы gettext для интернационализации;
- средства для работы с динамической памятью;
- средства для динамической загрузки модулей;
- атомарные операции;
- программные потоки и средства их синхронизации;
- порождение новых процессов;
- таймеры, функции для работы с датой и временем;
- генератор псевдо-случайных чисел;
- универсальный лексический сканер;
- синтаксический анализатор параметров командной строки;
- синтаксический анализатор подмножества данных типа XML;
- синтаксический анализатор .ini-подобных конфигурационных файлов;
- средства ввода-вывода;
- функции перехвата;
- Shell-related Utilities;
- синтаксический анализатор файлов, содержащих закладки;
- средства работы с регулярными выражениями типа Glob.
Типы данных
Базовые типы данных GLib предназначены для удобства программиста и переносимости приложения. Они делятся на следующие группы: