Next Previous Contents

6. Acerca de glib

6.1 ¿Qué es glib?

glib es una librería de funciones y definiciones útiles disponibles para ser utilizadas cuando se crean aplicaciones GDK y GTK. Proporciona reemplazos para algunas funciones estándar de libc, como malloc, las cuales tienen errores en algunos sistemas.

También proporciona rutinas para manejar:

6.2 ¿Por qué utilizar g_print, g_malloc, g_strdup y funciones compañeras de glib?

Gracias a Tim Janik que escribió a gtk-list: (ligeramente modificado)

Con respecto a g_malloc(), g_free() y hermanos, estas funciones son más seguras que sus equivalentes en libc. Por ejemplo, g_free() solo regresa si se llama con NULL. También, si se define USE_DMALLOC, la definición para estas funciones cambia (en glib.h) para utilizar MALLOC(), FREE() etc... Si MEM_PROFILE o MEM_CHECK se definen, hay incluso pequeñas estadísticas realizadas las cuales cuentan los tamaños de los bloques (mostrado por g_mem_profile() / g_mem_check()).

Considerando el hecho de que glib provee una interface para salvar espacio en pedazos de memoria si se tiene varios bloques que son siempre del mismo tamaño y para marcarlos ALLOC_ONLY si es necesario, es sencillo crear una pequeña envoltura para salvar (revisable para errores) alrededor del malloc/free normal asimismo - igual que gdk cubre Xlib. ;)

Utilizar g_error() y g_warning() dentro de aplicaciones como GIMP las cuales utilizan gtk por completo incluso da la oportunidad de hacer saltar una ventana que muestre los mensajes dentro de una ventana gtk con tu propio handler (utilizando g_set_error_handler()) con el mismo estilo que gtk_print() (dentro de gtkmain.c).


Next Previous Contents