Подтвердить что ты не робот

Glibc, glib и gnulib

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

4b9b3361

Ответ 1

glibc - это основная библиотека времени выполнения C. Он предоставляет такие вещи, как printf(3) и fopen(3).

glib - это объектно-ориентированный цикл событий и служебная библиотека, написанная на C.

gnulib - это библиотека, которая предоставляет адаптер из POSIX API в собственный API.

Все три используются для совершенно разных задач.

Ответ 2

glibc, сокращенная форма библиотеки GNU C, является реализацией проекта GNU стандартной библиотеки 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.