GLib

De Wikipedia, la enciclopedia libre
GLib
Parte de Proyecto GNOME
GTK Logo
Información general
Tipo de programa Biblioteca de desarrollo
Desarrollador Proyecto GNOME
Lanzamiento inicial 1998
Licencia LGPLv2.1+
Estado actual Activo
Información técnica
Programado en C
Plataformas admitidas Multiplataforma
Versiones
Última versión estable 2.80.07 de marzo de 2024
Última versión en pruebas 2.55.211 de febrero de 2018
Archivos legibles
INI
Archivos editables
INI
Enlaces

En informática, GLib es una biblioteca multiplataforma de funciones de propósito general implementada originalmente como parte de la biblioteca de componentes gráficos GTK.[1]: 7  Posteriormente, GLib fue separada de GTK,[cita requerida] de forma que pudiera ser usada también por aplicaciones sin interfaz gráfica de usuario o que no emplearan GTK para implementar dicha interfaz gráfica.

Características[editar]

Uno de los mayores beneficios de usar GLib es que provee una interfaz de plataforma independiente que permite que el código pueda ser usado en diferentes sistemas operativos. Otro aspecto de GLib es la amplia gama de tipo de datos que deja disponible al desarrollador.

  • GLib provee tipos de datos en C que usualmente se incluyen de forma estándar a otros lenguajes, como por ejemplo listas enlazadas. Otros tipos de datos básicos incluidos son colas doblemente enlazadas, árboles binarios autobalanceados, etc.
  • Las cadenas de caracteres en GLib son similares a las de C++, porque son buffers de texto que crecen automáticamente cuando se agregan datos. Son fáciles de integrar a la familia de funciones printf().
  • Los segmentos de memoria (memory slice) son una forma eficiente de crear secciones de memoria que tienen todos el mismo tamaño. Pueden ser usados para crear vectores aún de elementos de tamaño conocido.
  • Las cachés (Hash Tables desde la versión 2.32) son usadas para compartir grandes y complejas estructuras de datos en una sencilla API, lo cual ayuda a ahorrar espacio. Se usan en GTK+ para los estilos y contextos gráficos, ya que estos objetos consumen muchos recursos.

GLib además de proporcionar varios tipos de datos, también dispone de numerosos tipos de funciones. Se encuentran funciones de manipulación de archivos, soporte de internacionalización, cadenas de caracteres, advertencias, banderas de depuración, carga dinámica de módulos, solo por nombrar algunas.

GLib maneja funciones que pueden ser llamadas cuando el microprocesador no está haciendo nada en la aplicación. También puede llamar funciones en un intervalo arbitrario de tiempo.

Dependencias[editar]

Biblioteca libiconv Se necesita para usar la función iconv(), la cual convierte entre diferentes codificaciones de caracteres.
Biblioteca libintl Se necesita si el sistema no cuenta con la función gettext()

Tipos de datos[editar]

GLib define tipos de datos que usan otras bibliotecas, los cuales garantizan mayor portabilidad de código.

Tipo de dato Descripción
gboolean Tipo lógico estándar. Las variables de este tipo sólo pueden contener TRUE o FALSE.
gpointer Un puntero sin tipo de datos. gpointer luce mejor y es más fácil de usar que void*.
gconstpointer Un puntero sin tipo de datos. El dato apuntado no puede ser cambiado.
gchar Corresponde al tipo carácter estándar de C (char).
guchar Corresponde al tipo carácter sin signo estándar de C (unsigned char).
gint Corresponde al tipo entero estándar de C (int). Sus valores van del rango de G_MININT a G_MAXINT.
guint Corresponde al tipo entero sin signo estándar de C (unsigned int). Sus valores van del rango de 0 a G_MAXUINT.
gshort Corresponde al tipo entero corto estándar de C (short). Sus valores van del rango de G_MINSHORT a G_MAXSHORT.
gushort Corresponde al tipo entero corto sin signo estándar de C (unsigned short). Sus valores van del rango de 0 a G_MAXUSHORT.
glong Corresponde al tipo entero largo estándar de C (long). Sus valores van del rango de G_MINLONG a G_MAXLONG.
gulong Corresponde al tipo entero largo sin signo estándar de C (unsigned long). Sus valores van del rango de 0 a G_MAXULONG.
gint8 Entero con signo de 8 bits en cualquier plataforma. Rango de -128 a 127.
guint8 Entero sin signo de 8 bits en cualquier plataforma. Rango de 0 a 255.
gint16 Entero con signo de 16 bits en cualquier plataforma. Rango de -32,768 a 32,767.
guint16 Entero sin signo de 16 bits en cualquier plataforma. Rango de 0 a 65,535.
gint32 Entero con signo de 32 bits en cualquier plataforma. Rango de -2,147,483,648 a 2,147,483,647.
guint32 Entero sin signo de 32 bits en cualquier plataforma. Rango de 0 a 4,294,967,295.
gint64 Entero con signo de 64 bits en cualquier plataforma. Rango de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.
gfloat Corresponde al tipo flotante estándar de C (float). Sus valores van del rango de -G_MAXFLOAT a G_MAXFLOAT.
gdouble Corresponde al tipo flotante doble estándar de C (double). Sus valores van del rango de -G_MAXDOUBLE to G_MAXDOUBLE.
gsize Valor entero sin signo resultado del operador sizeof. El tamaño de este tipo es el suficiente para almacenar un valor numérico de un puntero, en una plataforma de 32 bits utiliza 32 bits, en una plataforma de 64 bits utiliza 64 bits.
gssize Variante con signo del tipo gsize.
goffset Valor entero con signo que se usa para representar offsets de archivos.

Véase también[editar]

Referencias[editar]

  1. Harlow, Eric (1999). Desarrollo de aplicaciones Linux con GTK+ y GDK (1ª edición). Madrid: Prentice Hall Iberia. ISBN 84-8322-196-9. 

Enlaces externos[editar]