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

Библиотеки файлов конфигурации Linux

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

4b9b3361

Ответ 2

Я бы порекомендовал libconfig '.

Ответ 3

Другая опция Boost.PropertyTree (doc). Он позволяет читать/записывать файлы XML, INI, JSON и Info. И вы получаете бесплатную переносимость.

Ответ 4

Boost program_options Это позволяет вам читать параметры программы из конфигурационных файлов, переменных среды и командной строки. Он переносится и очень прост в использовании.

Ответ 5

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

Я никогда не пробовал использовать libconfig, но он выглядит как хороший выбор, и мне нравится формат файлов конфигурации, которые он использует.

Вам нужно решить, хотите ли вы, чтобы ваша программа могла писать файлы конфигурации. Если это программа GUI, вы, вероятно, это делаете. Это повлияет на то, какие библиотеки подходят.

Ответ 6

Для одного приложения вы можете рассмотреть libconfuse.

Если вам нужно иметь возможность обрабатывать самые разнообразные форматы файлов конфигурации (например, для веб-портала для системы, который должен читать и записывать файлы конфигурации из многих приложений во многих форматах), существует Augeas.

Ответ 7

Вопрос в том, какой формат файла вы имели в виду? Атрибут "простой" - это немного неопределенность. Если вы ищете библиотеку, которая может использовать конфигурационные файлы "windows.ini formated", вы можете проверить ACE http://www.cs.wustl.edu/~schmidt/ACE/.