1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
4
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
5
<TITLE>Didacticiel: glib</TITLE>
6
<LINK HREF="gtk_tut_fr-18.html" REL=next>
7
<LINK HREF="gtk_tut_fr-16.html" REL=previous>
8
<LINK HREF="gtk_tut_fr.html#toc17" REL=contents>
10
<BODY BGCOLOR="#FFFFFF">
11
<A HREF="gtk_tut_fr-18.html">Page suivante</A>
12
<A HREF="gtk_tut_fr-16.html">Page pr�c�dente</A>
13
<A HREF="gtk_tut_fr.html#toc17">Table des mati�res</A>
15
<H2><A NAME="sec_glib"></A> <A NAME="s17">17. glib</A></H2>
17
<P>La <EM>glib</EM> fournit de nombreuses fonctions et d�finitions utiles,
18
pr�tes � �tre utilis�es lorsqu'on cr�e des applications GDK et GTK. Je
19
les �num�rerais toutes avec une br�ve explication. Beaucoup sont des
20
r�pliques des fonctions standards de la <EM>libc</EM>, et je ne les
21
d�taillerais donc pas trop. Ceci doit surtout servir de r�f�rence afin
22
de savoir ce qui est disponible pour �tre utilis�.
24
<H2><A NAME="ss17.1">17.1 D�finitions</A>
27
<P>Les d�finitions pour les bornes de la plupart des types standards sont :
43
<P>Voici aussi les red�finitions de types. Celles qui ne sont pas
44
sp�cifi�es sont configur�es dynamiquement selon l'architecture. �vitez
45
surtout de compter sur la taille d'un pointeur si vous voulez un
46
programme portable ! Un pointeur sur un Alpha fait 8 octets, mais il
47
en fait 4 sur un Intel.
58
unsigned short gushort;
77
<H2><A NAME="ss17.2">17.2 Listes doublement cha�n�es</A>
80
<P>Les fonctions suivantes servent � cr�er, g�rer et d�truire des listes
81
doublement cha�n�es. Je suppose que vous savez ce qu'est une liste
82
cha�n�e car leur explication n'entre pas dans le cadre de ce
83
document. Bien s�r, il n'y a pas besoin de les conna�tre pour une
84
utilisation g�n�rale de GTK, mais c'est bien de savoir comment elles
89
GList* g_list_alloc (void);
91
void g_list_free (GList *list);
93
void g_list_free_1 (GList *list);
95
GList* g_list_append (GList *list,
98
GList* g_list_prepend (GList *list,
101
GList* g_list_insert (GList *list,
105
GList* g_list_remove (GList *list,
108
GList* g_list_remove_link (GList *list,
111
GList* g_list_reverse (GList *list);
113
GList* g_list_nth (GList *list,
116
GList* g_list_find (GList *list,
119
GList* g_list_last (GList *list);
121
GList* g_list_first (GList *list);
123
gint g_list_length (GList *list);
125
void g_list_foreach (GList *list,
133
<H2><A NAME="ss17.3">17.3 Listes simplement cha�n�es</A>
136
<P>La plupart des fonctions pour les listes simplement cha�n�es
137
ci-dessous sont identiques � celles vues plus haut. Voici une liste
142
GSList* g_slist_alloc (void);
144
void g_slist_free (GSList *list);
146
void g_slist_free_1 (GSList *list);
148
GSList* g_slist_append (GSList *list,
151
GSList* g_slist_prepend (GSList *list,
154
GSList* g_slist_insert (GSList *list,
158
GSList* g_slist_remove (GSList *list,
161
GSList* g_slist_remove_link (GSList *list,
164
GSList* g_slist_reverse (GSList *list);
166
GSList* g_slist_nth (GSList *list,
169
GSList* g_slist_find (GSList *list,
172
GSList* g_slist_last (GSList *list);
174
gint g_slist_length (GSList *list);
176
void g_slist_foreach (GSList *list,
183
<H2><A NAME="ss17.4">17.4 Gestion de la m�moire</A>
189
gpointer g_malloc (gulong size);
192
<P>Remplace <EM>malloc()</EM>. On n'a pas besoin de v�rifier la valeur de
193
retour car cela est fait pour nous dans cette fonction.
197
gpointer g_malloc0 (gulong size);
200
<P>Identique � la pr�c�dente, mais initialise la m�moire � z�ro avant de
201
retourner un pointeur vers la zone r�serv�e.
205
gpointer g_realloc (gpointer mem,
209
<P>R�alloue <EM>size</EM> octets de m�moire � partir de <EM>mem</EM>. �videmment,
210
la m�moire doit avoir �t� allou�e auparavant.
214
void g_free (gpointer mem);
217
<P>Lib�re la m�moire. Facile.
221
void g_mem_profile (void);
224
<P>Produit un profil de la m�moire utilis�e, mais requiert l'ajout de
225
<EM>#define MEM_PROFILE</EM> au d�but de <EM>glib/gmem.c</EM>,
226
de refaire un <EM>make</EM> et un <EM>make install</EM>.
230
void g_mem_check (gpointer mem);
233
<P>V�rifie qu'un emplacement m�moire est valide. N�cessite que l'on
234
ajoute <EM>#define MEM_CHECK</EM> au d�but de <EM>gmem.c</EM> que l'on refasse
235
un <EM>make</EM> et un <EM>make install</EM>.
237
<H2><A NAME="ss17.5">17.5 Timers</A>
240
<P>Fonctions des timers...
244
GTimer* g_timer_new (void);
246
void g_timer_destroy (GTimer *timer);
248
void g_timer_start (GTimer *timer);
250
void g_timer_stop (GTimer *timer);
252
void g_timer_reset (GTimer *timer);
254
gdouble g_timer_elapsed (GTimer *timer,
255
gulong *microseconds);
260
<H2><A NAME="ss17.6">17.6 Gestion des cha�nes</A>
263
<P>Un ensemble complet de fonction de gestion des cha�nes. Elles semblent
264
toutes tr�s int�ressantes et sont s�rement meilleures, � bien des
265
�gards, que les fonctions C standards, mais elle n�cessitent de la
270
GString* g_string_new (gchar *init);
271
void g_string_free (GString *string,
274
GString* g_string_assign (GString *lval,
277
GString* g_string_truncate (GString *string,
280
GString* g_string_append (GString *string,
283
GString* g_string_append_c (GString *string,
286
GString* g_string_prepend (GString *string,
289
GString* g_string_prepend_c (GString *string,
292
void g_string_sprintf (GString *string,
296
void g_string_sprintfa (GString *string,
303
<H2><A NAME="ss17.7">17.7 Utilitaires et fonctions d'erreurs</A>
309
gchar* g_strdup (const gchar *str);
312
<P>Remplace la fonction <EM>strdup</EM>. Elle copie le contenu de la cha�ne
313
d'origine dans la m�moire venant d'�tre allou�e et retourne un
314
pointeur sur cette zone.
318
gchar* g_strerror (gint errnum);
321
<P>Je recommande de l'utiliser pour tous les messages d'erreur. Elle est
322
beaucoup plus propre et plus portable que <EM>perror()</EM> ou les
323
autres. La sortie est habituellement de la forme :
327
nom du programme:fonction qui a �chou�:fichier ou autre descripteur:strerror
330
<P>Voici un exemple d'appel utilis� dans le programme � Bonjour tout le monde ! � :
334
g_print("bonjour_monde:open:%s:%s\n", filename, g_strerror(errno));
340
void g_error (gchar *format, ...);
343
<P>Affiche un message d'erreur. Le format est comme <EM>printf</EM>, mais il
344
ajoute � ** ERROR **: � au d�but du message et sort du programme. �
345
n'utiliser que pour les erreurs fatales.
349
void g_warning (gchar *format, ...);
352
<P>Comme au dessus, mais ajoute � ** WARNING **: �, et ne termine pas le
357
void g_message (gchar *format, ...);
361
Affiche � message: � avant la cha�ne pass�e en param�tre.
365
void g_print (gchar *format, ...);
368
<P>Remplace <EM>printf()</EM>.
369
<P>Enfin la derni�re fonction :
373
gchar* g_strsignal (gint signum);
376
<P>Affiche le nom du signal syst�me Unix correspondant au num�ro de
377
signal. Utile pour les fonctions g�n�riques de gestion de signaux.
378
<P>Tout ce qui est ci-dessus est plus ou moins vol� � <EM>glib.h</EM>. Si
379
quelqu'un s'occupe de documenter une fonction, qu'il m'envoit un
384
<A HREF="gtk_tut_fr-18.html">Page suivante</A>
385
<A HREF="gtk_tut_fr-16.html">Page pr�c�dente</A>
386
<A HREF="gtk_tut_fr.html#toc17">Table des mati�res</A>