【问题标题】:C bind config file to executableC 将配置文件绑定到可执行文件
【发布时间】:2017-05-23 19:09:53
【问题描述】:

我有一个 C 程序,它在运行时从配置文件中读取。该文件必须与可执行程序位于同一目录中。有没有办法将配置文件绑定或编译为可执行文件,当我将可执行文件复制到其他地方时,我也不必复制配置文件?

【问题讨论】:

  • 将配置和可执行文件放在同一个文件夹中并不是最好的设计。
  • 有办法的。但是,如果您希望将它们全部列出。您的问题对 SO 来说太宽泛了。

标签: c configuration compilation config


【解决方案1】:

有没有办法将配置文件绑定或编译为可执行文件,当我将可执行文件复制到其他地方时,我也不必复制配置文件?

您的配置文件确实是与可执行二进制文件分开的文件,因此两者可以独立操作。

如果程序配置仅在编译时执行,那么可以,您可以将配置数据嵌入到程序中。这带来了额外的优势,您无需文件 I/O 即可访问配置数据。这将涉及您的配置过程生成要编译到程序中的源代码。

但是,如果您的配置文件是传统形式的配置文件,需要在编译后的一段时间内进行调整,甚至可能由最终用户进行调整,则配置数据无法集成到可执行二进制文件中。在那种情况下,不,你问的是不可能的。然后,您无法确保在可执行文件存在时移动或复制配置文件。

其他想法:

  • 在文件系统上二进制文件的位置不直接暴露给正在运行的程序的许多系统上,要求配置文件与二进制文件并置存在根本问题。

  • 对于可执行文件来说,依赖于其配置文件的默认位置通常会更好,而与二进制文件本身的位置无关。这样的默认位置可以是系统范围的、每个用户的或两者的组合。

  • 依赖配置文件的程序能够自动或响应特殊参数编写默认配置文件是相当普遍的。但是,自动替代方案更适用于具有每个用户配置的程序,而不是具有全局配置的程序。

  • 当程序可通过文件进行运行时配置时,通常最好提供通过命令行参数指定要使用的文件的选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多