Используйте файл INI в C на Linux - PullRequest
21 голосов
/ 17 февраля 2010

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

Я работаю над карманным компьютером на базе Linux и пишу код на C.

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

Окончательное обновление:

Я исследовал и даже использовал LibConfig. Но занимаемая площадь высока, и я слишком прост в использовании. Итак, чтобы уменьшить площадь, я развернул собственную реализацию. Реализация не является слишком общей, на самом деле довольно взаимосвязанной на данный момент. Файл конфигурации анализируется один раз во время запуска приложения и устанавливается для некоторых глобальных переменных.

Ответы [ 7 ]

14 голосов
/ 17 февраля 2010

Попробуйте libconfig :

простая библиотека для обработки структурированных файлов конфигурации, например: test.cfg . Этот формат файла является более компактным и более читаемым, чем XML. И в отличие от XML, он распознает типы, поэтому нет необходимости выполнять разбор строк в коде приложения.

Libconfig очень компактен - часть размера библиотеки XML-анализатора expat. Это делает его подходящим для систем с ограниченным объемом памяти, таких как портативные устройства.

Библиотека включает в себя привязки для языков C и C ++. Он работает на POSIX-совместимых системах UNIX и UNIX-подобных (GNU / Linux, Mac OS X, Solaris, FreeBSD), Android и Windows (2000, XP и более поздние версии) ...

10 голосов
/ 17 февраля 2010

Нет, не существует одного стандартного способа. Извините, но это, пожалуй, самый точный ответ:)

Вы можете посмотреть этот список библиотек файлов конфигурации Linux . Это может быть полезно.

9 голосов
/ 17 февраля 2010

Вот четыре варианта:

  1. Iniparser
  2. libini
  3. СДЛ-CFG
  4. RWini
7 голосов
/ 17 февраля 2010

Если вы можете использовать (отлично, в любом приложении на основе C) glib , у него есть синтаксический анализатор файлов значений ключей , который подходит для файлов в стиле .ini. Конечно, вы также получите доступ к различным (очень хорошим) структурам данных в glib «бесплатно».

4 голосов
/ 17 февраля 2010

Существует обновленный ветвь iniparser на ccan , оригинальный автор не мог уделять ему много внимания на протяжении многих лет. Отказ от ответственности - я поддерживаю это.

Кроме того, iniparser содержит словарь, который сам по себе очень полезен.

3 голосов
/ 07 декабря 2015

Если вам нужен быстрый и маленький код только для чтения конфигурационных файлов, я предлагаю inih

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

Действительно маленький. Может использоваться и во встроенных системах.

2 голосов
/ 02 декабря 2011

Я не хочу предлагать что-то совершенно другое в предложении XML, но libexpat довольно минималистичен, но делает XML.

Я пришел к такому выводу, так как у меня был тот же вопрос, что и у вас, но потом я понял, что в проекте уже есть связывание libexpat - и я, вероятно, должен просто использовать это.

...