GLib — Википедия

GLib
Тип библиотека функций
Разработчик Проект GNOME
Написана на Си[2]
Операционная система кроссплатформенная
Последняя версия 2.75.4[1] (3 марта 2023; 13 месяцев назад (2023-03-03))
Репозиторий gitlab.gnome.org/GNOME/g…
Лицензия LGPLv2.1+[d][3]
Сайт wiki.gnome.org/Pr… (англ.)

GLib — низкоуровневая библиотека, расширяющая возможности, предоставляемые стандартной библиотекой libc языка C.

Разрабатываемая в рамках и лежащая в основах проектов GTK и GNOME, GLib широко используется в приложениях, в том числе и неграфических. Выпуск очередной версии библиотеки по времени обычно совпадает с выпуском новой версии GTK.

GLib предоставляет основную объектную систему, используемую в GNOME, реализацию основного цикла, а также обширный набор вспомогательных функций для строк и типовых структур данных[4].

На данный момент GLib способна работать на многих UNIX-подобных операционных системах, а также MS Windows, OS/2 и BeOS.

Возможности[править | править код]

GLib предоставляет следующие возможности:

  • большой набор базовых и производных типов данных;
  • макросы и развитый механизм отладочных сообщений;
  • строковые функции;
  • функции для преобразования кодировок и поддержки юникода;
  • встроенные макросы gettext для интернационализации;
  • средства для работы с динамической памятью;
  • средства для динамической загрузки модулей;
  • атомарные операции;
  • программные потоки и средства их синхронизации;
  • порождение новых процессов;
  • таймеры, функции для работы с датой и временем;
  • генератор псевдо-случайных чисел;
  • универсальный лексический сканер;
  • синтаксический анализатор параметров командной строки;
  • синтаксический анализатор подмножества данных типа XML;
  • синтаксический анализатор .ini-подобных конфигурационных файлов;
  • средства ввода-вывода;
  • функции перехвата;
  • Shell-related Utilities;
  • синтаксический анализатор файлов, содержащих закладки;
  • средства работы с регулярными выражениями типа Glob.

GLib реализует функции, которые обеспечивают потоки, программирование потоков и связанные с ними средства, такие как примитивный доступ к переменным, мьютексы, асинхронные очереди, защищенные пулы памяти, передача и регистрация сообщений, функции ловушек (регистрация обратного вызова) и таймеры. GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.

Типы данных[править | править код]

Базовые типы данных GLib предназначены для удобства программиста и переносимости приложения. Они делятся на следующие группы:

  1. Целые типы с фиксированным размером — gint8, guint8, gint16, guint16, gint32, guint32, gint64, guint64. Размер переменной любого из этих типов одинаков для каждой используемой аппаратной платформы. Для gint8, например, он всегда равен 8 бит.
  2. Псевдонимы стандартных типов языка C — gpointer (аналог void *), gconstpointer, guchar (аналог unsigned char), guint, gushort, gulong, gchar (аналог char), gint, gshort, glong, gfloat и gdouble.
  3. Тип gboolean со значениями TRUE и FALSE, типы gsize и gssize для представления размеров структур данных.
  4. Тип GString, который похож на стандартные С строки, за исключением того, что они автоматически расширяются, когда текст добавляется или вставляется. Также, он хранит длину строки, так что может быть использован для двоичных данных с нулевыми байтами.

Примечания[править | править код]

  1. Overview of changes in GLib 2.75.4, 2023-03-03. Дата обращения: 3 марта 2023. Архивировано 3 марта 2023 года.
  2. The glib Open Source Project on Open Hub: Languages Page — 2006.
  3. Free Software Directory
  4. GLib Reference Manual — GNOME Library. Дата обращения: 13 октября 2008. Архивировано 10 мая 2010 года.

Ссылки[править | править код]