Bez zająknienia

Bez zająknienia

Informacja
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.

Rozwój

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 .

Need for GLib

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 → GtkWindow

GTK 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 .

Zawartość

Bezpieczne funkcje dla łańcuchów i tablic

Zaawansowane struktury danych

Glib umożliwia tworzenie zaawansowanych struktur danych i manipulowanie nimi wraz z powiązanymi z nimi makrami (np. G_array_index () ):

Interakcja z użytkownikiem

Analiza wspólnych plików strukturalnych

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 .

Bibliografia

Uwagi i odniesienia

  1. Zobacz Andrew Krause, Foundations of GTK + Development. Głos eksperta w Open Source. , Apress,2007, 630  s. ( ISBN  978-1-59059-793-4 i 1-59059-793-1 ) , str.  5
  2. Zobacz Peter Wright, Beginning GTK + / GNOME Programming , Wrox,2000( ISBN  978-1-86100-381-2 ) , „Sterowanie układem interfejsu użytkownika”, str.  92-97.
  3. Mettier , str.  106-114.
  4. Por . Cl. Delannoy, Programowanie w języku C , Paryż, Eyrolles,2009, 267  s. ( ISBN  978-2-212-12546-7 , czytaj online ) , „8. Ciągi znaków”, s.  145
  5. Mettier , str.  81.
  6. Mettier , str.  93.
  7. Patrz np. B. Klemens, 21st Century C , O'Reilly,2015( ISBN  978-1-4919-0389-6 ) , „6. Your Pal the Pointer”, s.  139-140
  8. Patrz np. N. Kalicharan, Struktury danych w C , CreateSpace Independent Publ.,2012, 330  s. ( ISBN  978-1-4382-5327-5 ) , „3. Połączone listy”
  9. Mettier , str.  58-61.
  10. Mettier , str.  62.
  11. Mettier , str.  68-76.

Załączniki

Linki zewnętrzne