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

Какой c lib использовать, когда мне нужно разобрать простой файл конфигурации под Linux?

Скажем, у меня есть простой файл конфигурации, который моя программа должна читать/анализировать.

Скажем, это выглядит примерно так:

#Some comment
key1=data1
key2=data2

Есть ли стандартный c lib, который я могу использовать вместо написания собственного анализатора?

Спасибо Johan


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

4b9b3361

Ответ 1

libconfig, но он делает гораздо больше, чем вы просите

Ответ 2

Почему бы просто не использовать GLIB?

Среди множества других вещей есть библиотечные функции для анализа INI, такие как файлы конфигурации:

https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html

Кроме того, он также поддерживает типы данных (списки, хэш-таблицы, строки, кэши), потоки, нейтральные абстракции платформы, модульное тестирование, обработку ошибок и многое другое.

Для меня это самая полезная библиотека C, и у меня должна быть очень веская причина писать программу на C без использования этой библиотеки.

Ответ 3

Мне стоит упомянуть libConfuse здесь и процитировать его описание:

libConfuse - это библиотека анализатора файлов конфигурации, лицензированная в соответствии с условиями лицензии ISC и написанная на C. Она поддерживает разделы и (списки) значений (строки, целые числа, поплавки, булевы или другие разделы), а также некоторые другие функции (такие как строки с одиночными/двойными кавычками, расширение переменной среды, функции и вложенные операторы include). Это упрощает добавление возможностей файла конфигурации в программу с использованием простого API.

Цель libConfuse - не библиотека библиотек конфигурационных файлов с gazillion функций. Вместо этого он стремится быть простым в использовании и быстро интегрироваться с вашим кодом. libConfuse раньше назывался libcfg, но его имя было изменено, чтобы не путать себя с другими подобными библиотеками.

Это похоже на уже упомянутый libconfig. Существует короткое сравнение в Изучение существующих библиотек для чтения из файлов конфигурации, которые могут быть полезными для любого, кто выбирает среди альтернатив.

Ответ 4

Если вам нужен действительно маленький и простой анализатор INI (очень хороший для встроенных систем, таких как маршрутизаторы), попробуйте INIH. Это всего 2-3 страницы кода.

Ответ 5

Я реализовал простую библиотеку C, которая анализирует файл конфигурации:

https://github.com/taneryilmaz/libconfigini

См. каталог тестов для использования.