GLib Reference Manual

Table of Contents
GLib Fundamentals
Basic Types — standard GLib types, defined for ease-of-use and portability.
Limits of Basic Types — portable method of determining the limits of the standard types.
Standard Macros — commonly-used macros.
Type Conversion Macros — a portable method for storing gint & guint values in gpointer variables.
Byte Order Macros — a portable way to convert between different byte orders.
Miscellaneous Macros — specialised macros which are not used often.
GLib Core Application Support
The Main Event Loop — manages all available sources of events.
Threads — thread abstraction; including mutexes, conditions and thread private data.
Dynamic Loading of Modules — portable method for dynamically loading 'plug-ins'.
Memory Allocation — general memory-handling.
IO Channels — portable support for using files, pipes and sockets.
Message Output and Debugging Functions — functions to output messages and help debug applications.
Message Logging — versatile support for logging messages with different levels of importance.
GLib Utilities
String Utility Functions — various string-related functions.
Date and Time Functions — calendrical calculations and miscellaneous time stuff.
Hook Functions — support for manipulating lists of hook functions.
Miscellaneous Utility Functions — a selection of portable utility functions.
Lexical Scanner — a general purpose lexical scanner.
Automatic String Completion — support for automatic completion using a group of target strings.
Timers — functions to time operations.
Windows Compatability Functions — functions to support portability to the Windows environment.
GLib Data Types
Memory Chunks — efficient way to allocate groups of equal-sized chunks of memory.
Doubly-Linked Lists — linked lists containing integer values or pointers to data, with the ability to iterate over the list in both directions.
Singly-Linked Lists — linked lists containing integer values or pointers to data, limited to iterating over the list in one direction.
Hash Tables — associations between keys and values so that given a key the value can be found quickly.
Strings — text buffers which grow automatically as text is added.
String Chunks — efficient storage of groups of strings.
Arrays — arrays of arbitrary elements which grow automatically as elements are added.
Pointer Arrays — arrays of pointers to any type of data, which grow automatically as new elements are added.
Byte Arrays — arrays of bytes, which grow automatically as elements are added.
Balanced Binary Trees — a sorted collection of key/value pairs optimised for searching and traversing in order.
N-ary Trees — trees of data with any number of branches.
Quarks — a 2-way association between a string and a unique integer identifier.
Keyed Data Lists — lists of data elements which are accessible by a string or GQuark identifier.
Datasets — associate groups of data elements with particular memory locations.
Relations and Tuples — tables of data which can be indexed on any number of fields.
Caches — allows sharing of complex data structures to save resources.
Memory Allocators — allocates chunks of memory for GList, GSList and GNode.