【问题标题】:Multiple programs using one or multiple config file [closed]使用一个或多个配置文件的多个程序[关闭]
【发布时间】:2021-02-24 13:31:39
【问题描述】:

我有一个使用 yocto 构建的自定义 linux 的嵌入式设备。 此设备上有多个程序:

  • 从传感器读取数据
  • 将数据转换为给定格式
  • 响应 udp 请求
  • ...

许多程序需要一些配置,例如:

  • 要读取多少个样本
  • 要转换的格式
  • 哪个 udp 端口​​
  • ...

我现在的问题是,存储这些设置的最佳方式是什么?

将它们全部存储在一个文件中会更好吗? (更换设备时,我只需要更改一个文件。)

或者为每个程序制作一个配置文件更好?

【问题讨论】:

  • 也许将编码信息保存在单个文件中会是一个不错的选择。
  • 您自己开发所有这些应用程序吗?或者它们是其他人开发的应用程序?如果是后者,修改其源代码可能需要大量工作,以便他们使用您首选的配置文件语法。
  • @CiaranMcHale 我正在自己开发所有这些。它们都非常简单/简短,修改它们应该不是很多工作。

标签: c++ linux configuration config


【解决方案1】:

我建议你安排每个应用程序从一个命名的文件中的一个命名的作用域获取它的配置变量,例如,你可以启动应用程序app1、app2app3 如下:

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

您应该会发现将 范围 的概念映射到您喜欢的配置文件格式的现实很容易。例如,在 XML 中,scope 指的是 XML 元素。

如果您还没有首选的配置文件语法,那么您可能想查看Config4* 配置文件解析器(在 C++ 和 Java 中可用,由我开发)。它直接支持我上面描述的内容。阅读Config4* 入门指南的第 2 章(语法概述)和第 3 章(API 概述),应该足以帮助您就它是否符合您的需求做出明智的决定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2010-10-24
    • 1970-01-01
    • 2013-11-29
    相关资源
    最近更新 更多