多个程序使用一个或多个配置文件
Multiple programs using one or multiple config file
我有一个嵌入式设备,带有使用 yocto 构建的自定义 linux。
此设备上有多个程序:
- 从传感器读取数据
- 将数据转换为给定格式
- 响应 udp 请求
- ...
许多程序需要一些配置,例如:
- 要读取多少样本
- 要转换的格式
- 哪个udp端口
- ...
我现在的问题是,存储这些设置的最佳方式是什么?
将它们全部存储在一个文件中是否更好?
(更换设备时,只需更改一个文件即可。)
还是为每个程序制作一个配置文件更好?
我建议您安排每个应用程序从命名的 文件 中的命名 scope 获取其配置变量,例如,您可能会启动应用程序 app1、app2 和 app3,如下所示:
app1 -cfg common.cfg -scope app1
app2 -cfg common.cfg -scope app2
app3 -cfg common.cfg -scope app3
以上指示每个应用程序从公共配置文件中特定于应用程序的范围读取其配置变量。如果您改变主意,并决定最好让每个应用程序都有自己的配置文件,那么您只需更改 -cfg <file.cfg>
命令行选项即可实现此目的,以产生:
app1 -cfg app1.cfg -scope app1
app2 -cfg app2.cfg -scope app2
app3 -cfg app3.cfg -scope app3
您应该会发现很容易将 scope 的概念映射到您首选的配置文件格式的实际情况。例如,在 XML 中,scope 引用 XML 元素。
如果您还没有首选的配置文件语法,那么您可能需要查看 Config4* 配置文件解析器(在 C++ 和 Java 中可用,由我开发).它直接支持我上面描述的内容。阅读 Config4* 入门指南 的第 2 章(语法概述)和第 3 章(API 概述)应该足以帮助您就它是否适合做出明智的决定您的需求。
我有一个嵌入式设备,带有使用 yocto 构建的自定义 linux。 此设备上有多个程序:
- 从传感器读取数据
- 将数据转换为给定格式
- 响应 udp 请求
- ...
许多程序需要一些配置,例如:
- 要读取多少样本
- 要转换的格式
- 哪个udp端口
- ...
我现在的问题是,存储这些设置的最佳方式是什么?
将它们全部存储在一个文件中是否更好? (更换设备时,只需更改一个文件即可。)
还是为每个程序制作一个配置文件更好?
我建议您安排每个应用程序从命名的 文件 中的命名 scope 获取其配置变量,例如,您可能会启动应用程序 app1、app2 和 app3,如下所示:
app1 -cfg common.cfg -scope app1
app2 -cfg common.cfg -scope app2
app3 -cfg common.cfg -scope app3
以上指示每个应用程序从公共配置文件中特定于应用程序的范围读取其配置变量。如果您改变主意,并决定最好让每个应用程序都有自己的配置文件,那么您只需更改 -cfg <file.cfg>
命令行选项即可实现此目的,以产生:
app1 -cfg app1.cfg -scope app1
app2 -cfg app2.cfg -scope app2
app3 -cfg app3.cfg -scope app3
您应该会发现很容易将 scope 的概念映射到您首选的配置文件格式的实际情况。例如,在 XML 中,scope 引用 XML 元素。
如果您还没有首选的配置文件语法,那么您可能需要查看 Config4* 配置文件解析器(在 C++ 和 Java 中可用,由我开发).它直接支持我上面描述的内容。阅读 Config4* 入门指南 的第 2 章(语法概述)和第 3 章(API 概述)应该足以帮助您就它是否适合做出明智的决定您的需求。