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