Cet article est une ébauche concernant un logiciel libre.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

GLib

Informations
Développé par GNOME Foundation
Dernière version 2.80.3 ()[1]Voir et modifier les données sur Wikidata
Version avancée 2.67.2
Dépôt gitlab.gnome.org/GNOME/glib.gitVoir et modifier les données sur Wikidata
Écrit en Langage C
Système d'exploitation GNU/Linux, BSD, Microsoft Windows et Macintosh famille de systèmes d'exploitationVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Formats lus Fichier INIVoir et modifier les données sur Wikidata
Formats écrits Fichier INIVoir et modifier les données sur Wikidata
Langues Multilingue
Type manipulation de structure de données
Licence GNU LGPL 2.1
Documentation https://developer.gnome.org/glib/
Site web library.gnome.org/devel/glib/

GLib est une bibliothèque libre pour le langage C et spécifiquement l'interface de programmation GTK. Sans se substituer à la bibliothèque standard du C, elle en réécrit certains aspects, comme les fonctions de traitement de chaînes alphanumériques et de fichiers, ou la gestion des erreurs d'appel ; mais implémente aussi des structures de données élaborées : arbres, table de hachage et listes. Cette bibliothèque offre les principales fonctions de gestion de la boucle d'événements (clics souris, frappe clavier, signaux en général) de GTK : pile d'exécution, tas mémoire, callbacks.

De par son caractère très général et sa licence libre, cette bibliothèque est utilisable pour programmer toutes sortes d'applications, en évitant certaines difficultés de la bibliothèque standard de C.

Développement

C'était à l'origine un sous-ensemble de fonctions destinées à faciliter le portage du code GTK sur différentes plates-formes, en donnant aux types (booléens, entiers longs, pointeurs) le même format et la même taille en octets ; le codage des entiers, notamment, pose un problème de compatibilité particulier : le « boutisme ». Au moment de la conception de GTK 2 (appelé alors GTK+ 2), les développeurs décidèrent de sortir de l'interface GTK toutes les fonctions non-graphiques pour en faire une bibliothèque généraliste[2] : GLib. Elle s'est désormais étendue pour offrir des fonctionnalités supplémentaires (sécurité sur l'adressage des chaînes de caractères, formats date/heure, gestion de l'espace-disque, appels système, etc.).

GLib fait partie du paquet GTK du projet GNU. Elle est distribuée selon les termes de la licence GNU LGPL.

Nécessité de GLib

Outre la portabilité des données, GLib a été conçu pour donner à GTK une structure de langage objet, qui n'existe pas en langage C. Il s'agit de créer une arborescence de types abstraits :

GtkObjectGtkWidgetGtkContainerGtkBinGtkWindow

Une fenêtre graphique de GTK (GtkWIndow) est en effet un objet élaboré dont les paramètres d'état (position, taille, palette de couleurs, fontes, possibilités d'interaction, visibilité et activité) sont organisés en strates hiérarchiques. Schématiquement,

Lorsque l'on modifie une fenêtre, il faut donc gérer la communication entre ces couches logiques pour que l'actualisation graphique se fasse correctement[3].

GLib apporte les outils qui permettent cette communication entre couches superposées :

Ces outils sont rassemblés dans une partie essentielle de GLib, GObject.

Contenu

Fonctions sécurisées pour les chaînes et tableaux

Structures de donnée évoluées

Glib permet de créer et de manipuler des structures de données évoluées, avec leurs macros associées (par ex. g_array_index() ) :

Interaction avec l'utilisateur

Analyse de fichiers structurés courants

GLib fournit des fonctions d'analyse de certaines données structurées (sous-ensemble du XML, fichiers de configuration), ou de décodage des expressions régulières. Les expressions régulières fournissent un moyen précieux de tester la présence d'un motif dans une chaîne de caractère, ou d'extraire une partie d'une chaîne. Glib offre des fonctions de comparaison, de tri et d'extraction utilisant la syntaxe d'expression régulière de la norme POSIX.

Bibliographie

Notes et références

  1. « 2.80.3 », (consulté le )
  2. Cf. Andrew Krause, Foundations of GTK+ Development. Expert's Voice in Open Source., Apress, , 630 p. (ISBN 978-1-59059-793-4 et 1-59059-793-1), p. 5
  3. Cf. Peter Wright, Beginning GTK+/GNOME Programming, Wrox, (ISBN 978-1-86100-381-2), « Controlling the User Interface Layout », p. 92-97.
  4. Mettier, p. 106-114.
  5. Cf. Cl. Delannoy, Programmer en langage C, Paris, Eyrolles, , 267 p. (ISBN 978-2-212-12546-7, lire en ligne), « 8. Les chaînes de caractère », p. 145
  6. Mettier, p. 81.
  7. Mettier, p. 93.
  8. Cf. par ex. B. Klemens, 21st Century C, O'Reilly, (ISBN 978-1-4919-0389-6), « 6. Your Pal the Pointer », p. 139-140
  9. Cf. par ex. N. Kalicharan, Data structures in C, CreateSpace Independent Publ., , 330 p. (ISBN 978-1-4382-5327-5), « 3. Linked lists »
  10. Mettier, p. 58-61.
  11. Mettier, p. 62.
  12. Mettier, p. 68-76.

Annexes

Sur les autres projets Wikimedia :

Liens externes