glibc, glib и gnulib - PullRequest
       40

glibc, glib и gnulib

28 голосов
/ 10 февраля 2010

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

Ответы [ 2 ]

43 голосов
/ 10 февраля 2010

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

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

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

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

2 голосов
/ 02 июля 2019

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 .

...