В этой книге недостаточно места, чтобы осветить все особенности glib.
Стоит посмотреть в glib, как только вы ловите себя на мысли:
Обязательно должна быть функция, которая... --
glib.h и документация по glib на
http://www.gtk.org -- превосходные ресурсы.
Вот краткий список еще не упомянутых особенностей:
"FLOAT_MAX" и другие эквиваленты для многих типов чисел.
Преобразования порядка байт.
"g_memmove()" более переносима, чем
"memmove()".
"G_DIR_SEPARATOR" следит за разницей между
Windows и UNIX.
Многочисленные макросы, которые позволяют пользоваться расширениями
компилятора (особенно расширениями gcc) переносимым
способом.
Переносимая "g_htonl()" и другие преобразования
хост-в-сеть.
GCache -- средство для организации типового кэша.
Процедуры обслуживания обработчиков -- регистрация и
дерегистрации обработчиков.
Средство "g_log()" позволяет вам печатать
предупреждения, сообщения и т.д. с конфигурируемыми уровнями протоколирования
и подключаемыми процедурам печати.
Средство GMemChunk позволяет вам выделять огромные
пулы маленьких цепочек памяти, по эффективности выигрывающее у
"g_malloc()". Например, используется в реализации
GList.
Таймер.
Удобные/переносимые процедуры для получения домашнего каталога
пользователя, получения имени каталога "/tmp" и подобных
задач.
Манипулирование с именем файла, такое как "g_basename()"
и "g_path_is_absolute()".
Манипуляции с битовыми полями.
Расширенные классы строк и массивов. Массивы указателей и байт.
GQuark -- двустороннее преобразование данных из
строковых в численные идентификаторы.
Процедуры для связывания данных со строками или произвольными указателями.
Лексический сканер.
Завершение по табуляции.
Календарные функции и функции вычисления дат.
Обощенная абстракция цикла событий, используемая для реализации
цикла событий Gtk+.
Переносимая абстракция многонитевости.
Если вам нужна некая широко используемая процедура, которой еще нет в
glib, напишите ее в стиле glib и пожертвуйте ее в
эту библиотеку! Вы получите бесплатно содействие при проектировании,
отладке и обслуживании, и другие программисты получат выгоду от написанного
вами средства. В то время как вы это читаете, возможно, что возможность,
которую вы хотели, уже есть в последней версии glib.