Существуют ли какие-либо хорошие библиотеки чтения файлов конфигурации для C \ C++, которые можно использовать для приложений, написанных на платформе Linux. Я хотел бы иметь простой файл конфигурации для своего приложения. В лучшем случае я хотел бы держаться подальше от файлов XML, которые потенциально могут сбить с толку пользователей.





Вы можете попробовать парсер файла ключ-значение glib
Boost program_options Это позволяет вам читать параметры программы из файлов конфигурации, переменных среды и командной строки. Он портативный и очень простой в использовании.
но эта библиотека не могла сохранить параметры программы.
Я бы порекомендовал libconfig.
Если вам просто нужен простой файл конфигурации со списком команд и / или настроек переменных, то очень легко написать собственный синтаксический анализатор, настолько простой, что, вероятно, не стоит использовать библиотеку. Если вам нужно что-то более сложное, парсер быстро усложняется, и стоит использовать существующую библиотеку.
Я никогда не пробовал использовать libconfig, но похоже, что это хороший выбор, и мне нравится формат файлов конфигурации, которые он использует.
Вам нужно решить, хотите ли вы, чтобы ваша программа могла записывать файлы конфигурации. Если это программа с графическим интерфейсом, то, вероятно, вы это сделаете. Это повлияет на то, какие библиотеки подходят.
Другой вариант - Boost.PropertyTree (док). Он позволяет читать / писать файлы XML, INI, JSON и Info. И вы получаете мобильность бесплатно.
Вопрос в том, какой формат файла вы имели в виду? Атрибут "простой" немного недооценен. Если вы ищете библиотеку, которая может использовать конфигурационные файлы в формате Windows .ini, вы можете попробовать ACE http://www.cs.wustl.edu/~schmidt/ACE/.
Для одного приложения вы можете рассмотреть libconfuse.
Если вам нужно иметь возможность обрабатывать широкий спектр форматов файлов конфигурации (например, для веб-портала для системы, который должен читать и записывать файлы конфигурации из многих приложений во многих форматах), существует Авгий.
Я считаю, что ваше решение избегать XML - хорошее решение. XML на самом деле не читается человеком, за исключением чрезвычайных ситуаций.