Opracowany przez | Fundacja GNOME |
---|---|
Ostatnia wersja | 2.66.4 (17 grudnia 2020 ) |
Wersja zaawansowana | 2.67.2 |
Kaucja | gitlab.gnome.org/GNOME/glib.git |
Napisane w | Język C. |
System operacyjny | GNU / Linux , BSD ( d ) , Microsoft Windows i Mac OS |
Środowisko | Wieloplatformowy |
Czytaj formaty | Plik INI |
Formaty pisemne | Plik INI |
Języki | Wielojęzyczny |
Rodzaj | manipulacja strukturą danych |
Licencja | GNU LGPL 2.1 |
Dokumentacja | https://developer.gnome.org/glib/ |
Stronie internetowej | library.gnome.org/devel/glib/ |
GLib (którego nie należy mylić z Glibc , „Biblioteką GNU C”) jest wolną biblioteką dla języka C, a konkretnie dla interfejsu programowania GTK . Nie zastępując standardowej biblioteki C , przepisuje pewne jej aspekty, takie jak funkcje przetwarzania alfanumerycznych ciągów i plików lub obsługi błędów wywołań; ale także implementuje skomplikowane struktury danych : drzewa , tabele skrótów i listy . Ta biblioteka oferuje główne funkcje do zarządzania pętlą zdarzeń GTK (kliknięcia myszą, naciśnięcia klawiszy, ogólnie sygnały): stos wykonywania , sterta pamięci , wywołania zwrotne .
Ze względu na swój bardzo ogólny charakter i bezpłatną licencję, biblioteka ta może być używana do programowania wszelkiego rodzaju aplikacji, unikając pewnych trudności związanych ze standardową biblioteką C.
Pierwotnie był to podzbiór funkcji, które miały ułatwić przenoszenie kodu GTK na różne platformy, poprzez nadanie typom (wartości logiczne, długie liczby całkowite, wskaźniki) tego samego formatu i rozmiaru w bajtach; w szczególności kodowanie liczb całkowitych stwarza szczególny problem ze zgodnością: „ endyzm ”. W czasie tworzenia koncepcji GTK 2 (wtedy nazywanej GTK + 2), programiści zdecydowali się usunąć z GTK API wszystkie funkcje nie-graficzne, aby stworzyć ogólną bibliotekę: GLib. Został teraz rozszerzony o dodatkowe funkcjonalności (bezpieczeństwo adresowania ciągów znaków, formatów daty / czasu, zarządzanie przestrzenią dyskową, wywołania systemowe itp.).
GLib jest częścią GTK pakiet z projektu GNU . Jest rozpowszechniany na warunkach licencji GNU LGPL .
Oprócz przenośności danych GLib został zaprojektowany, aby dać GTK strukturę języka obiektowego , która nie istnieje w języku C. Chodzi o stworzenie abstrakcyjnego drzewa typów:
GtkObject → GtkWidget → GtkContainer → GtkBin → GtkWindowGTK okno graficzne (GtkWindow) jest rzeczywiście skomplikowany przedmiot, którego stan parametry (położenie, rozmiar, kolorystyka, czcionki, możliwości interakcji, widoczności i aktywności) są organizowane w warstwach hierarchicznych. Schematycznie
Podczas modyfikowania okna konieczne jest zatem zarządzanie komunikacją między tymi warstwami logicznymi, aby aktualizacja grafiki była wykonywana poprawnie.
GLib udostępnia narzędzia, które umożliwiają komunikację między nałożonymi warstwami:
Narzędzia te są zebrane w istotnej części GLib, GObject .
Glib umożliwia tworzenie zaawansowanych struktur danych i manipulowanie nimi wraz z powiązanymi z nimi makrami (np. G_array_index () ):
GLib zapewnia funkcje do analizy pewnych danych strukturalnych (podzbiór XML , pliki konfiguracyjne) lub dekodowania wyrażeń regularnych . Wyrażenia regularne zapewniają cenny sposób testowania obecności wzorca w ciągu znaków lub wyodrębniania części ciągu. Glib udostępnia funkcje porównywania, sortowania i wyodrębniania przy użyciu standardowej składni wyrażeń regularnych POSIX .