Tarafından geliştirildi | GNOME Vakfı |
---|---|
Son sürüm | 2.66.4 (17 Aralık 2020 ) |
Gelişmiş sürüm | 2.67.2 |
Depozito | gitlab.gnome.org/GNOME/glib.git |
Yazılmış | C dili |
İşletim sistemi | GNU / Linux , BSD ( d ) , Microsoft Windows ve Mac OS |
Çevre | Çapraz platform |
Biçimleri okuyun | INI dosyası |
Yazılı formatlar | INI dosyası |
Diller | Çok dilli |
Tür | veri yapısı manipülasyonu |
Lisans | GNU LGPL 2.1 |
Dokümantasyon | https://developer.gnome.org/glib/ |
İnternet sitesi | library.gnome.org/devel/glib/ |
GLib ( Glibc , "GNU C Kütüphanesi" ile karıştırılmaması gereken ), C dili ve özellikle GTK programlama arayüzü için ücretsiz bir kütüphanedir . Standart C kitaplığını değiştirmeden, alfasayısal dizeleri ve dosyaları işleme veya çağrı hatalarını işleme işlevleri gibi belirli yönlerini yeniden yazar; ama aynı zamanda ayrıntılı veri yapılarını da uygular : ağaçlar , karma tablolar ve listeler . Bu kütüphane, GTK olay döngüsünü (fare tıklamaları, tuş vuruşları, genel olarak sinyaller) yönetmek için ana işlevleri sunar : yürütme yığını , bellek yığını , geri aramalar .
Çok genel karakteri ve ücretsiz lisansı nedeniyle, bu kütüphane, standart C kütüphanesinin belirli zorluklarından kaçınarak her türlü uygulamayı programlamak için kullanılabilir.
Başlangıçta, GTK kodunu farklı platformlara aktarmayı kolaylaştırmayı amaçlayan bir işlevler alt kümesiydi, türler (booleanlar, uzun tamsayılar, işaretçiler) aynı biçim ve boyutta baytlar vererek ; özellikle tamsayıların kodlanması belirli bir uyumluluk problemi ortaya çıkarır : " endizm ". GTK 2'nin (daha sonra GTK + 2 olarak adlandırılırdı) tasarlandığı sırada, geliştiriciler genel bir kitaplık oluşturmak için GTK API'sinden tüm grafik olmayan işlevleri çıkarmaya karar verdiler: GLib. Artık ek işlevler (karakter dizilerinin adreslemesinde güvenlik, tarih / saat biçimleri, disk alanı yönetimi, sistem çağrıları vb.) Sunmak için genişletildi.
GLib parçası olan GTK paketinin içinde GNU Projesi . GNU LGPL lisansının koşulları altında dağıtılır .
GLib, veri taşınabilirliğine ek olarak, GTK'ya C dilinde bulunmayan bir nesne dili yapısı vermek için tasarlanmıştır . Soyut bir tür ağacı oluşturmakla ilgilidir:
GtkObject → GtkWidget → GtkContainer → GtkBin → GtkWindowBir GTK grafik penceresi (GtkWIndow) gerçekten de durum parametreleri (konum, boyut, renk paleti, yazı tipleri, etkileşim olanakları, görünürlük ve etkinlik) hiyerarşik katmanlarda düzenlenen ayrıntılı bir nesnedir. Şematik olarak,
Bu nedenle, bir pencereyi değiştirirken, bu mantıksal katmanlar arasındaki iletişimi, grafik güncellemesinin doğru şekilde yapılması için yönetmek gerekir.
GLib, üst üste binen katmanlar arasında bu iletişimi sağlayan araçları sağlar:
Bu araçlar GLib, GObject'in önemli bir bölümünde toplanmıştır .
Glib, ilişkili makrolarıyla (örneğin g_array_index () ) gelişmiş veri yapıları oluşturmanıza ve değiştirmenize olanak tanır :
GLib, belirli yapılandırılmış verileri ( XML'in alt kümesi , yapılandırma dosyaları) analiz etmek veya normal ifadelerin kodunu çözmek için işlevler sağlar . Normal ifadeler, bir karakter dizesinde bir modelin varlığını test etmek veya bir dizenin bir bölümünü çıkarmak için değerli bir yol sağlar. Glib, POSIX standart düzenli ifade sözdizimini kullanarak karşılaştırma, sıralama ve ayıklama işlevleri sağlar .