Расположение файлов конфигурации в проекте Stack Overflow

Мне было интересно, есть ли соглашение для хранения файлов конфигурации в C ++. На данный момент я храню файлы конфигурации в том же каталоге, что и исходный код, который их использует. При сборке я удостоверяюсь, что через CMakeLists скопирую их в правильное местоположение, чтобы я мог просто получить к ним относительный доступ (например, «config.cfg» iso «/foo/bar/config.cfg) для удобства.

2

Решение

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

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

Для unix / linux вы можете, например, рассмотреть:

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

Для систем Windows, вы должны учитывать:

  • обычный подход сейчас идет к реестр. Конечно, это использует Windows API и является полностью не переносимым.
  • подпапка C:\ProgramData или же C:\Users\All users\AppData\Local если ваша конфигурация соответствует установленной системе,
  • подпапка C:\Users\%USERNAME%\AppData\Local для собственной конфигурации пользователей.
    это ТАК вопросы показывает, как найти нужные папки.
5

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector