Использование INI-файла в C в Linux
есть ли стандартный способ чтения такой конфигурации, как INI файлы для Linux с использованием C?
Я работаю над портативным компьютером на базе Linux и пишу код в C.
в противном случае я хотел бы знать о любых альтернативах.
последнее обновление:
Я исследовал и даже использовал LibConfig. Но след ноги высок и мое использование слишком просто. Итак, чтобы уменьшить след, я выкатил свой собственный реализация. Реализация не слишком универсальна, на самом деле, на данный момент довольно сопряжена. Файл конфигурации анализируется один раз во время запуска приложения и устанавливается в некоторые глобальные переменные.
7 ответов
попробовать libconfig:
простая библиотека для обработки структурированных файлов конфигурации, вроде этого:
нет, нет одного стандартного способа. Извините, но это, наверное, самый точный ответ :)
вы могли бы посмотреть на это список библиотек файлов конфигурации Linux, хотя. Это может быть полезно.
Если вы можете использовать (отлично, в любом приложении на основе C) Глеб, Она имеет парсер файлов ключ-значение, которая подходит для .ini файлы-стиль. Конечно, вы также получите доступ к различным (очень хорошим) структурам данных в glib, "бесплатно".
есть обновленная вилка iniparser в ccan, первоначальный автор не смог уделить ему много внимания на протяжении многих лет. Отказ от ответственности - я поддерживаю его.
кроме того, iniparser содержит словарь, который очень полезен сам по себе.
Если вам нужен быстрый и небольшой код только для чтения конфигурационных файлах, я предлагаю inih
он загружает содержимое файла конфигурации только один раз, анализирует содержимое и вызывает функцию обратного вызова для каждой пары ключ/значение.
действительно мало. Его можно использовать на врезанных системах тоже.
Я ненавижу предлагать что-то совершенно другое в предложении XML, но libexpat довольно минимален, но делает XML.
Я пришел к этому выводу, так как у меня был тот же вопрос, что и у вас, но потом я понял, что проект уже связан с libexpat, и я, вероятно, должен просто использовать это.