glibc, glib и gnulib

Каковы различия в силе и свойствах gnulib glib и glibc Спасибо!

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.

Другие вопросы по тегам