Dans cet article, nous plongerons dans le monde passionnant de GLib, en explorant ses nombreuses facettes et en fournissant une analyse détaillée de son importance dans la société actuelle. Dans les lignes suivantes, nous aborderons sa pertinence historique, son impact dans le domaine professionnel, son influence sur la culture populaire et les défis auxquels elle est confrontée aujourd'hui. GLib est un sujet d'un grand intérêt et son étude nous permettra de mieux comprendre sa portée et la manière dont il a façonné notre réalité. Rejoignez-nous dans cette visite de GLib et découvrez tout ce que ce thème a à offrir.
Développé par | GNOME Foundation |
---|---|
Dernière version | 2.84.1 ()[1] |
Version avancée | 2.67.2 |
Dépôt | gitlab.gnome.org/GNOME/glib.git |
Écrit en | Langage C |
Système d'exploitation | GNU/Linux, BSD, Microsoft Windows et systèmes d'exploitation Mac OS |
Environnement | Multiplate-forme |
Formats lus | Fichier INI |
Formats écrits | Fichier INI |
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.
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.
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 :
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.
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() ) :
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 pour tester la présence d'un motif dans une chaîne de caractère, ou pour 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.