glibc, glib и gnulib

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


person Tim    schedule 10.02.2010    source источник


Ответы (2)


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

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

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

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

person Ignacio Vazquez-Abrams    schedule 10.02.2010
comment
Фактически, GLib не зависит от GObject и, следовательно, не имеет самой системы типов и объектов, кроме обычного, это непрозрачный тип данных. GObject, с другой стороны, построен поверх GLib. - person matthias; 17.07.2012

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.

person qwr    schedule 01.07.2019