Как библиотеки Boost в C

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

Среда - это встроенная система, а не очень минимальная система, но и не ПК!

Я забыл добавить ранее, что среда - это встроенная система (я не имею в виду очень минимальную систему, но и не ПК). Будет ли там работать рекомендация Glib?

Nick Berardi 17.10.2008 23:26

Мне тоже было интересно об этом - поскольку у меня есть микроплатформа ARM, с которой я работаю.

jim 17.10.2008 23:44

Вероятно, это должно быть, если вы компилируете библиотеку из исходников.

Nicholas Mancuso 17.10.2008 23:59

Не совсем, но вы можете создать свою собственную библиотеку-оболочку C. Смотрите здесь: linkedin.com/pulse/using-boost-c-library-from-darmawan-salih‌ un

Jim Fell 02.08.2017 15:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
33
4
11 531
6

Ответы 6

Я не уверен, что вы найдете одну библиотеку, которая охватит все это ... но вы можете проверить бойкий и pthreads, чтобы охватить большую часть этого.

Хороший. Добавление к моему списку вещей, на которые стоит посмотреть.

jim 17.10.2008 23:43

+1 для GLib от меня тоже. Кроме того, у него также есть собственный API потоковой передачи, поэтому вам не нужно изучать pthreads, если вы этого не хотите.

Не уверен, существует ли такая вещь, как «интеллектуальное управление памятью» в C, это не очень просто, когда у вас нет сетей безопасности деструкторов и контроля над операторами. Но, опять же, в GLib есть множество ориентированных на память структур данных и прочего, что действительно облегчает жизнь.

И нет, я не в команде GLib, но мне это очень нравится. :)

Нет ли библиотеки для функций Regex, таких как Boost?

user4710450 19.09.2016 14:14

@Ehsan Я не знаю, я никогда не использовал Boost. Кроме того, в наши дни этот стиль вопросов немного осуждается.

unwind 19.09.2016 14:18

Знаете ли вы какие-нибудь библиотеки регулярных выражений для C? Что-нибудь лучше regex.h?

user4710450 19.09.2016 14:22

@Ehsan Вы прочитали ответ, который комментируете?

unwind 19.09.2016 14:58

Предупреждение: Glib использует лицензию LGPL, которая является более строгой, чем лицензия Boost. Так что прочтите мелкий шрифт перед использованием.

user694733 22.11.2017 13:07

Немного поздно, но у C есть механизмы регулярных выражений мирового класса. Онигмо, онигурума или широко используемый PCRE.

yeyo 22.01.2018 23:17

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

Посмотрите на Boehm GC, широко используемый консервативный сборщик мусора для C (или C++), который может удовлетворить ваши потребности в том, что касается интеллектуального управления памятью.

Однако следует проявлять осторожность при смешивании GC с кодом, отличным от GC, например. сохранение ссылок на блок GC (созданный, например, с помощью GC_MALLOC) только в блоки, отличные от GC (например, созданные с помощью malloc), вероятно, преждевременно вспомнит этот блок! (По крайней мере, согласно семантике GC, сам не пробовал, поправьте меня, если я ошибаюсь.) Интересно, есть ли какая-нибудь хорошая служебная библиотека, поддерживающая сборку мусора.

Paggas 05.05.2009 03:17

По поводу использования Glib.

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

Я делаю то же самое с виртуальной машиной Python. PyMite подходит для микроконтроллера и не использует все функции.

Ознакомьтесь с проектом Портативная среда выполнения Apache (APR).

Некоторые из его функций:

  • API управления памятью
  • потоки, мьютексы
  • файловый ввод / вывод
  • атомарные операции
  • хеш-таблицы, массивы
  • сетевые сокеты и протокол
  • разделяемая память, mmap

Не говоря уже о том, что это портативный.

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