什么是 Linux 的等效注册表?

son*_*pta 5 c++ linux registry ini file

最近我参与了从 Windows 到 Linux 的代码移植。我遇到了很多 Windows 函数,它们检索注册表项并对其进行编辑。我不确定 Linux 的等效方法是什么。我知道注册表只是一个 Windows 数据库,它以“键=值”格式存储数据。我在考虑INI 文件。除此之外,还有什么比这更有效的吗?

我不是从存储的角度询问。我的问题与 Linux 中的注册表等效项有关。我们如何在 Linux 中实现注册表结构?

The*_*ist 5

在 Linux 中按用户存储配置的典型方法是将其存储在 中/home/username/.someapp,其中someapp是您的程序名称。我喜欢 Linux 中的这个,实际上是因为当我移动到另一台计算机时,我所要做的就是保存/移动我的主目录,这将保存我的所有配置。

在 Windows 上,注册表有一个 user 部分HKEY_CURRENT_USER,其他部分代表任何用户,例如HKEY_LOCAL_MACHINE,对于整个系统是全局的。对于用户部分,您应该像我之前解释的那样将配置放在用户目录中,因为它不需要任何超级用户权限。您可以选择将本地机器部分也放在用户目录中,然后每个用户都将具有单独的配置,或者将其放在类似的内容中/var/lib/someapp,但请记住,那时它将是只读的。

有了这一切,请记住,您应该创建自己的配置格式,或者使用一些库,例如libconfig、XML 或 JSON。


小智 3

Linux 有XDG 基本目录规范。如果您想为您的应用程序使用配置文件(无论您喜欢哪种格式 - INI、JSON、YAML、SQLite 数据库等),请将其存储在目录中$XDG_CONFIG_HOME/your_app_name