GLib

GLib

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

Geliştirme

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 ihtiyacı

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

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

İçerik

Dizeler ve diziler için güvenli işlevler

Gelişmiş veri yapıları

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 :

Kullanıcı ile etkileşim

Ortak yapılandırılmış dosyaların analizi

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 .

Kaynakça

Notlar ve referanslar

  1. Bkz. Andrew Krause, Foundations of GTK + Development. Açık Kaynakta Uzmanın Sesi. , Apress,2007, 630  p. ( ISBN  978-1-59059-793-4 ve 1-59059-793-1 ) , s.  5
  2. Bkz. Peter Wright, Beginning GTK + / GNOME Programming , Wrox,2000( ISBN  978-1-86100-381-2 ) , "Kullanıcı Arayüzü Düzenini Kontrol Etme ", s.  92-97.
  3. Mettier , s.  106-114.
  4. Cf. Cl. Delannoy, C dilinde Programlama , Paris, Eyrolles,2009, 267  p. ( ISBN  978-2-212-12546-7 , çevrimiçi okuyun ) , "8. Karakter dizileri", s.  145
  5. Mettier , s.  81.
  6. Mettier , s.  93.
  7. Bkz. Ör. B. Klemens, 21st Century C , O'Reilly,2015( ISBN  978-1-4919-0389-6 ) , "6. İşaretçiniz Dostunuz ", s.  139-140
  8. Bkz. Ör. N. Kalicharan, C'deki veri yapıları , CreateSpace Independent Publ.,2012, 330  p. ( ISBN  978-1-4382-5327-5 ) , "3. Bağlı listeler"
  9. Mettier , s.  58-61.
  10. Mettier , s.  62.
  11. Mettier , s.  68-76.

Ekler

Dış bağlantılar