GLib
Тип | бібліотека |
---|---|
Розробники | GNOME Foundation |
Стабільний випуск | 2.53.1 (25 квітня 2017; 7 років тому (2017-04-25)) |
Платформа | крос-платформова[2] |
Операційна система | крос-платформова |
Мова програмування | C |
Доступні мови | багатомовна |
Стан розробки | активний |
Ліцензія | GNU Library General Public License |
Онлайн-документація | developer.gnome.org/glib/ |
Репозиторій | gitlab.gnome.org/GNOME/glib.git |
Вебсайт | library.gnome.org/devel/glib/ |
GLib — низькорівнева бібліотека, що розширює можливості, надані стандартною бібліотекою libc мови C.
Розробляється в рамках і лежить в основах проектів GTK+ і GNOME. GLib широко використовується в застосунках, в тому числі і неграфічних. Випуск чергової версії бібліотеки за часом зазвичай збігається з випуском нової версії GTK+.
Glib надає основну об'єктну систему, яка використовується в GNOME, реалізацію основного циклу, а також великий набір допоміжних функцій для рядків і типових структур даних[3].
Зараз GLib здатна працювати на багатьох UNIX-подібних операційних системах, а також Windows, OS/2 і BeOS.
Можливості
GLib надає такі можливості:
- великий набір базових і похідних типів даних;
- макроси і розвинений механізм налагоджувальних повідомлень;
- рядкові функції;
- функції для перетворення символів та підтримки юнікоду;
- вбудовані макроси gettext для інтернаціоналізації;
- засоби для роботи з динамічною пам'яттю;
- засоби для динамічного завантаження модулів;
- атомарні операції;
- програмні ниті і засоби їхньої синхронізації;
- породження нових процесів;
- таймери, функції для роботи з датою і часом;
- генератор псевдо-випадкових чисел;
- універсальний лексичний сканер;
- синтаксичний аналізатор параметрів командного рядка;
- синтаксичний аналізатор підмножини даних типу XML;
- синтаксичний аналізатор. ini-подібних конфігураційних файлів;
- засоби введення-виведення;
- функції перезахоплення;
- утиліти командного рядка;
- синтаксичний аналізатор файлів, що містять закладку;
- засоби роботи з регулярними виразами типу Glob.
Типи даних
Базові типи даних GLib призначені для зручності програміста і переносимості програми. Вони діляться на такі групи:
- Цілі типи з фіксованим розміром — gint8, guint8, gint16, guint16, gint32, guint32, gint64, guint64. Розмір змінної будь-якого з цих типів однаковий для кожної використовуваної апаратної платформи. Для gint8, наприклад, він завжди дорівнює 8 біт.
- Тезки стандартних типів мови C — gpointer (аналог void *), gconstpointer, guchar (аналог unsigned char), guint, gushort, gulong, gchar (аналог char), gint, gshort, glong, gfloat і gdouble.
- Тип gboolean зі значеннями TRUE і FALSE, типи gsize і gssize для представлення розмірів структур даних.
- Тип GString, схожий на стандартні рядок C, за винятком того, що вони автоматично розширюються, коли текст додається чи вставляється. Також, він зберігає довжину рядка, так що може бути використаний для двійкових даних з нульовими байтами.
Подібні проекти
Для багатьох застосувань C з GLib є альтернативою C++ з бібліотекою шаблонів STL (дивись GObject для докладнішого порівняння).
Інші набори віджетів звичайно теж забезпечують низькорівневі функції і реалізації структур даних. Наприклад, у бібліотеці wxWidgets не-GUI функції складають бібліотеку wxBase, у Qt не-GUI частина міститься у модулі QtCore, написаному на C++.
Виноски
- ↑ https://github.com/GNOME/glib/pull/12/files
- ↑ Krause, Andrew (2007). Foundations of GTK+ Development. Expert's Voice in Open Source. Apress. p. 5. ISBN 1-59059-793-1. «[GLib] provides a cross-platform interface that allows your code to be run on any of its supported operating systems with little to no rewriting of code!»
- ↑ Архівована копія. Архів оригіналу за 10 травня 2010. Процитовано 10 травня 2010.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
Посилання
- Glib Reference Manual(англ.) — Посібник користувача GLib
- Довідковий опис Glib (рос.) — Російський переклад API GLib версії 2.13.0
- Довідковий опис GObject (рос.) — Російський переклад API GObject (версія Glib 2.13.7)
- п
- о
- р
- Мігель де Ікаса
- Федеріко Мена
- Гевок Пеннінгтон
- Фундація GNOME
- GUADEC
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Gnomelogo.svg/50px-Gnomelogo.svg.png)
- Alacarte
- Baobab
- Brasero
- Cheese
- Ekiga
- Empathy
- Epiphany
- Evince
- Evolution
- Eye of GNOME
- Dasher
- File Roller
- gedit
- GNOME Display Manager
- GNOME Terminal
- GNOME Shell
- Metacity
- Mutter
- Nautilus
- Панель Gnome
- Rhythmbox
- Sound Juicer
- Screenshot
- Tomboy
- Totem
- Yelp
- інші…