1 ответ
glibc
библиотека времени выполнения ядра C. Это обеспечивает такие вещи, как printf(3)
а также fopen(3)
,
glib
представляет собой объектный цикл событий и служебную библиотеку, написанную на C.
gnulib
библиотека, предоставляющая адаптер от API POSIX к собственному API
Все три используются для совершенно разных задач.
Glibc, сокращенная форма GNU C Library, является реализацией ГНУ проекта из стандартной библиотеки C. API стандартной библиотеки C объявлен в знакомых файлах заголовков, таких как<stdio.h>
а также <stdlib.h>
(см. ссылку на Википедию для получения полного списка файлов заголовков).
API операционной системы POSIX предоставляется через <unistd.h>
который в основном обертывает системные вызовы, такие как fork
и операции ввода-вывода, такие как read
/write
.
GLib - это набор системных библиотек, написанных на C и разработанных GNOME (часть проекта GNU). Цитата из Википедии (к сожалению, без источника)
GLib предоставляет расширенные структуры данных, такие как блоки памяти, двусвязные и односвязные списки, хэш-таблицы, динамические строки и строковые утилиты, такие как лексический сканер, строковые блоки (группы строк), динамические массивы, сбалансированные двоичные деревья, N-арное деревья, кварки (двусторонняя связь строки и уникального целочисленного идентификатора), списки данных с ключами, отношения и кортежи. Кеши обеспечивают управление памятью.
GLib реализует функции, которые обеспечивают потоки, программирование потоков и связанные с ними средства, такие как доступ к примитивным переменным, мьютексы, асинхронные очереди, безопасные пулы памяти, передача сообщений и ведение журнала, функции перехвата (регистрация обратного вызова) и таймеры. GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.
Некоторые другие особенности GLib включают:
- стандартные макросы
- предупреждения и утверждения
- динамическая загрузка модулей
Зачем использовать функции GLib?
Gnulib, также называемый библиотекой переносимости GNU, представляет собой набор кода GNU для помощи в написании переносимого кода. Из руководства:
Gnulib задуман как канонический источник большинства важных "переносимых" и / или общих файлов для проектов GNU. Это файлы, предназначенные для совместного использования на уровне источника; Gnulib - это не типичная библиотека, предназначенная для установки и компоновки. Таким образом, в отличие от большинства проектов, Gnulib обычно не создает дистрибутив tarball с исходным кодом; вместо этого разработчики берут модули прямо из исходного репозитория.
Многие функции реализуют обходные пути переносимости для функций ISO C и POSIX.