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

Нужна библиотека общего назначения, чистая C

Не могли бы вы порекомендовать хорошую библиотеку контейнеров данных общего назначения для C (чистый C, а не С++)? Мне просто нужны базовые структуры, такие как динамические массивы, хэш-таблицы и т.д.

(Примечание: под "хорошим" я подразумеваю быстрый + элегантный интерфейс).

4b9b3361

Ответ 1

Я думаю, что Dave Hanson C Интерфейсы и реализации квалифицируется как быстрый, так и элегантный. Он включает в себя множество различных типов контейнеров, некоторую строковую обработку, арифметику с несколькими точками, исключения, пару различных менеджеров памяти. Хороший материал.

Там есть книга, но вам не нужно ее покупать, чтобы использовать программное обеспечение.

Ответ 3

Время автономной работы Apache

http://apr.apache.org/

Включает модули для этих областей.

  • Определения платформы
  • Распределение внутренней памяти
  • Атомные операции
  • Управление динамическими объектами
  • Функции для управления средой
  • Коды ошибок
  • Информация о файле
  • Функции обработки ввода-вывода файлов
  • Соответствующие функции имени файла
  • Различные подпрограммы библиотеки
  • Анализ аргументов команды
  • Глобальные процедуры блокировки
  • Таблицы Hash
  • Общие правила библиотеки библиотеки
  • Планы MMAP (Карта памяти)
  • Сетевые процедуры
  • Процедуры опроса
  • Функции пула памяти
  • Процедуры переносимости
  • Процедуры блокировки процесса
  • Случайные функции
  • Реализация макросов с кольцом
  • Процедуры общей памяти
  • Обработка сигналов
  • Строковые процедуры
  • Внутренние функции поддержки APR
  • Функции таблицы и массива
  • Условие Variable Routines
  • Механизмы потока Mutex
  • Темы и функции процесса
  • Процедуры блокировки чтения/записи
  • Временные ряды
  • Службы идентификаторов пользователей и групп.

Ответ 4

Я ранее рекомендовал MemSL, но сайт и компания, похоже, вымерли. Я бы предложил glib, он охватывает многие из тех же функций и широко поддерживается и используется на протяжении всего Сообщества Linux.

Я использовал MemSL при реализации ядра x86, и я нашел его общедоступным, надежным и без ошибок.

Из описания: C Обзор библиотеки структур памяти (MemSL)

Библиотека структур памяти, короткая MemSL, представляет собой библиотеку полезных подпрограмм, позволяющую эффективно использовать сложные структуры данных в C. MemSL содержит подпрограммы для управления:

  • Многомерные динамически распределенные массивы
  • Одиночные списки
  • Списки с двойной связью
  • Циклические связанные списки
  • Вырезать, скопировать и вставить со связанными списками
  • Несколько позиционных указателей для связанных списков.
  • Стеки
  • Очередь
  • Dequeues
  • Наборы
  • Сумки
  • Таблицы
  • Словари
  • Таблицы Hash с отдельными цепочками
  • Таблицы Hash с пользовательским пейджингом
  • Таблицы Hash с динамическим подкачкой
  • Деревья двоичного поиска
  • Деревья резьбового двоичного поиска
  • Сбалансированные двоичные деревья поиска AVL
  • AVL сбалансированные резьбовые двоичные деревья поиска
  • Приоритетные кучи
  • Полностью динамические очереди поиска приоритетов

Ответ 6

Вы также можете проверить iMatix SFL, чтобы процитировать их веб-страницу:

SFL (стандартная библиотека функций) от iMatix является переносной функцией библиотека для программ C/С++. SFL является результатом многолетнего развития, и предоставляется в виде программного обеспечения с открытым исходным кодом в интересах Интернет-сообщество. SFL написан на ANSI C и портирован в MS-DOS, Windows, OS/2, Linux и другие UNIX-системы (IBM AIX, SunOS, HP/UX, Solaris, NetBSD, FreeBSD, SCO OpenServer, > Digital UNIX) и Digital OpenVMS. Он поставляется с полными источниками и документация в формате HTML.

SFL предоставляет около 450 функций, которые охватывают следующие области:

  • Сжатие, шифрование и кодирование;
  • Преобразование и форматирование Datatype;
  • Даты, времена и календари;
  • Доступ к каталогам и средам;
  • Группы пользователей и процессов;
  • Инвертированные индексы растровых изображений;
  • Таблицы символов;
  • Файлы сообщений об ошибках;
  • Конфигурационные файлы;
  • Управление и поиск строк;
  • Доступ к файлам;
  • Доступ к интернет-сокету;
  • Интернет-программирование (MIME, CGI);
  • Доступ к SMTP (электронной почте);
  • Серверное (пакетное) программирование;
  • Трассировка программы.

SFL - бесплатное программное обеспечение, которое вы можете использовать и распространять для частных или коммерческих в соответствии с Лицензионное соглашение SFL.

Подробнее о самом API, см. здесь.

Ответ 7

Sglib "- это общая библиотека для C, которая была вдохновлена ​​стандартной библиотекой шаблонов из С++"

Ответ 8

Позвольте мне добавить:

http://libslack.org

(... и добавить к этому: libcx)

Ответ 9

Вам может быть интересно посмотреть на qLibc.

http://en.wikipedia.org/wiki/Qlibc http://www.qdecoder.org/qlibc/

Это универсальная полная библиотека C/С++, которая включает в себя все виды контейнеров и общие библиотечные процедуры.