« GLib » : différence entre les versions
Contenu supprimé Contenu ajouté
mis en forme |
Annulation de la modification de Sousou93600 (d) Balise : Annulation |
||
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 3 :
{{Infobox Logiciel
| couleur boîte =
| nom =
| logo =
| alternative logo =
Ligne 31 :
| version suivante =
}}
'''
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 informatique|portage du code]] GTK sur différentes plates-formes, en donnant aux [[Type (informatique)|type]]s (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 de programmation|interface]] GTK toutes les fonctions non-graphiques pour en faire une bibliothèque généraliste<ref name="Krause">Cf. {{Ouvrage |auteur1=Andrew Krause |titre=Foundations of GTK+ Development. Expert's Voice in Open Source. |éditeur=Apress |année=2007 |pages totales=630 |passage=5 |isbn=978-1-59059-793-4 |isbn2=1-59059-793-1}}</ref> :
== Nécessité de
Outre la portabilité des données,
<center>'''GtkObject''' → '''GtkWidget''' → '''GtkContainer''' → '''GtkBin''' → '''GtkWindow'''</center>
Ligne 53 :
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<ref name="Wright">Cf. {{Ouvrage |auteur1=Peter Wright |titre=Beginning GTK+/GNOME Programming |éditeur=Wrox |année=2000 |pages totales= |passage=92-97 |isbn=978-1-86100-381-2 |titre chapitre=Controlling the User Interface Layout}}.</ref>.
* des structures de données hiérarchisées et de taille variable,
* des aiguillages de routine dépendant du contexte, par le mécanisme des [[Fonction de rappel|fonctions de rappel]].
Ces outils sont rassemblés dans une partie essentielle de
== Contenu ==
=== Fonctions sécurisées pour les chaînes et tableaux ===
* allocation mémoire (<tt>g_try_malloc</tt>, <tt>g_free</tt>, etc.) : par rapport à la fonction standard <tt>malloc</tt>,
* vérification des limites de représentation pour les types de base ;
* chaîne de caractères (<tt>g_string_new</tt>, <tt>g_string_insert</tt>, etc.) : on a pu écrire qu'{{citation|''en langage C, il n'existe pas type chaîne, mais plutôt une convention pour les représenter''<ref name="Delannoy">Cf. {{Ouvrage |langue=fr |auteur1=Cl. Delannoy |titre=Programmer en langage C |éditeur=Eyrolles |lieu=Paris |année=2009 |pages totales=267 |passage=145 |isbn=978-2-212-12546-7 |lire en ligne=https://books.google.com/books?id=3xdaW2EAK_MC&printsec=frontcover |titre chapitre=8. Les chaînes de caractère}}</ref>}}. D'ailleurs certaines fonctions, comme <tt>gets</tt> (supprimée dans norme C11) ou <tt>strcpy</tt> sont délicates à manipuler ;
* les conversions de types : les fonctions de conversion de chaîne en nombre de
=== Structures de donnée évoluées ===
* [[liste chaînée|listes chaînées]] et [[File (structure de données)|files]]. Bien que les primitives de ces fonctions ne soient pas très difficiles à programmer en langage C<ref name="Klemens">Cf. par ex. {{Ouvrage |auteur1=B. Klemens |titre=21st Century C |éditeur=O'Reilly |année=2015 |pages totales= |passage=139-140 |isbn=978-1-4919-0389-6 |titre chapitre=6. Your Pal the Pointer}}</ref>{{,}}<ref name="Kalicharan">Cf. par ex. {{Ouvrage |auteur1=N. Kalicharan |titre=Data structures in C |éditeur=CreateSpace Independent Publ. |année=2012 |pages totales=330 |isbn=978-1-4382-5327-5 |titre chapitre=3. Linked lists}}</ref>,
* [[Arbre (Informatique)|arbres]] équilibrés : l'apport de
* [[table de hachage|tables de hachage]] :
=== Interaction avec l'utilisateur ===
* interprétation de la [[ligne de commande]] : le langage C permet de compter et de décoder les paramètres passés en option après le nom du programme exécutable, en ligne de commande. La librairie standard propose une fonction sommaire, getopt(), qui permet le décodage ; toutefois, celle-ci suppose encore une syntaxe assez stricte.
=== Analyse de fichiers structurés courants ===
== Bibliographie ==
|