Использовать INI файл в C на Linux
Есть ли стандартный способ чтения такой конфигурации, как INI файлы для Linux с помощью C?
Я работаю над карманным компьютером на базе Linux и пишу код в C.
В противном случае мне хотелось бы узнать о любых альтернативах.
Окончательное обновление:
Я изучил и даже использовал LibConfig. Но след высок, и мое использование слишком простое. Таким образом, чтобы уменьшить след, я развернул свою собственную реализацию. Реализация не является слишком обобщенной, на самом деле довольно сложной. Файл конфигурации анализируется один раз во время запуска приложения и устанавливается на некоторые глобальные переменные.
Ответы
Ответ 1
Попробуйте libconfig:
простая библиотека для обработки структурированных файлов конфигурации, такая как: test.cfg. Этот формат файла более компактен и читабельнее, чем XML. И в отличие от XML, это относится к типу, поэтому нет необходимости выполнять строковый синтаксический анализ в коде приложения.
Libconfig очень компактен - это часть размера библиотеки парсера expat XML. Это делает его хорошо подходящим для систем с ограничением памяти, таких как карманные устройства.
Библиотека включает в себя привязки для языков C и С++. Он работает с совместимыми с POSIX UNIX и UNIX-подобными системами (GNU/Linux, Mac OS X, Solaris, FreeBSD), Android и Windows (2000, XP и более поздние версии)...
Ответ 2
Нет, нет стандартного способа. Извините, но это, наверное, самый точный ответ:)
Однако вы можете посмотреть этот список файлов конфигурационных файлов Linux. Это может быть полезно.
Ответ 3
Вот четыре варианта:
Ответ 4
Если вы можете использовать (отлично, в любом приложении на основе C) glib, он имеет синтаксический анализатор ключевых слов, который подходит для файлов в стиле .ini. Конечно, вы также получите доступ к различным (очень красивым) структурам данных в glib, "бесплатно".
Ответ 5
Существует обновленная версия foriparser в ccan, автор не смог уделить этому много внимания на протяжении многих лет, Отказ от ответственности - я поддерживаю его.
Кроме того, iniparser содержит словарь, который очень полезен сам по себе.
Ответ 6
Если вам нужен быстрый и маленький код для чтения файлов конфигурации, я предлагаю inih
Он загружает содержимое файла конфигурации только один раз, анализирует содержимое и вызывает функцию обратного вызова для каждой пары ключ/значение.
Действительно мало. Он также может использоваться для встроенных систем.
Ответ 7
Ненавижу предлагать что-то совершенно другое, предлагая XML, но libexpat довольно минимален, но делает XML.
Я пришел к такому выводу, поскольку у меня был тот же вопрос, что и у вас, но потом я понял, что проект уже связан с libexpat, и я должен, вероятно, просто использовать его.