Ответ 1
libconfig, но он делает гораздо больше, чем вы просите
Скажем, у меня есть простой файл конфигурации, который моя программа должна читать/анализировать.
Скажем, это выглядит примерно так:
#Some comment
key1=data1
key2=data2
Есть ли стандартный c lib, который я могу использовать вместо написания собственного анализатора?
Спасибо Johan
Примечание. Сегодня у меня есть свой собственный небольшой парсер, но должны быть некоторые стандартные библиотеки, которые решают эту простую проблему.
libconfig, но он делает гораздо больше, чем вы просите
Почему бы просто не использовать GLIB?
Среди множества других вещей есть библиотечные функции для анализа INI, такие как файлы конфигурации:
https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
Кроме того, он также поддерживает типы данных (списки, хэш-таблицы, строки, кэши), потоки, нейтральные абстракции платформы, модульное тестирование, обработку ошибок и многое другое.
Для меня это самая полезная библиотека C, и у меня должна быть очень веская причина писать программу на C без использования этой библиотеки.
Мне стоит упомянуть libConfuse здесь и процитировать его описание:
libConfuse - это библиотека анализатора файлов конфигурации, лицензированная в соответствии с условиями лицензии ISC и написанная на C. Она поддерживает разделы и (списки) значений (строки, целые числа, поплавки, булевы или другие разделы), а также некоторые другие функции (такие как строки с одиночными/двойными кавычками, расширение переменной среды, функции и вложенные операторы include). Это упрощает добавление возможностей файла конфигурации в программу с использованием простого API.
Цель libConfuse - не библиотека библиотек конфигурационных файлов с gazillion функций. Вместо этого он стремится быть простым в использовании и быстро интегрироваться с вашим кодом. libConfuse раньше назывался libcfg, но его имя было изменено, чтобы не путать себя с другими подобными библиотеками.
Это похоже на уже упомянутый libconfig. Существует короткое сравнение в Изучение существующих библиотек для чтения из файлов конфигурации, которые могут быть полезными для любого, кто выбирает среди альтернатив.
Если вам нужен действительно маленький и простой анализатор INI (очень хороший для встроенных систем, таких как маршрутизаторы), попробуйте INIH. Это всего 2-3 страницы кода.
Я реализовал простую библиотеку C, которая анализирует файл конфигурации:
https://github.com/taneryilmaz/libconfigini
См. каталог тестов для использования.
http://code.jellycan.com/simpleini/
Вы можете использовать простые файлы INI.
Здесь я использовал с успехом:
http://ndevilla.free.fr/iniparser/
Он маленький и независимый.