在Unix / Linux中编程配置数据

时间:2010-03-05 06:21:08

标签: c++ linux unix configuration-files

在Unix / Linux中保留用户配置数据的推荐方法是什么? 我的编程语言是C ++。配置数据将以XML /文本/二进制格式保存,我对处理此类文件没有任何问题。我想知道我在哪里可以保留它们。例如,在Windows OS配置中,数据可以保存在Registry(旧方式)或用户应用程序数据目录中。 Linux怎么样? 我需要对配置文件的读/写访问权。

4 个答案:

答案 0 :(得分:9)

注册表的概念是Windows特有的,微软曾承认它构思不周(见thisthisthisthis (see #2)this)。

在Unix和Linux中,系统范围程序的配置位于/ etc或者特定于应用程序的子目录中。

每个用户配置数据以隐藏的文件输入文本格式保存在用户的主目录中,或者保存在用户主目录中的特定于应用程序的隐藏目录中。引用主目录的正确方法是通过环境变量HOME。通过将.作为名称的第一个字符来创建隐藏文件和目录。

系统范围配置的示例是/etc/wgetrc/etc/ssh/。每用户数据的示例包括$HOME/.bashrc$HOME/.mozilla/

答案 1 :(得分:4)

XDG基本目录规范指定应在Linux和其他基于X的操作系统中存储配置和其他文件的位置:

http://freedesktop.org/wiki/Specifications/basedir-spec

这是现代方式,最终可能会减少典型用户主目录中的dotfile混乱。

答案 2 :(得分:2)

Dotfiles是经典的Unix解决方案。如果你想自己处理所有的阅读/写作,那就去吧。

但是,我使用的大多数现代程序都使用GConf来存储首选项。无论是作为开发人员还是作为用户(并且显然是作为管理员,但我没有经验),它使事情变得更容易。

答案 3 :(得分:1)

这在一定程度上取决于你的Linux风格,但作为一般规则,大多数程序在/ etc中的某个地方都有系统默认配置,主目录中的.config文件可以覆盖/ etc目录中的默认值。


很棒.config应该是。[配置文件的名称]