C将配置文件绑定到可执行文件

时间:2017-01-09 13:44:49

标签: c configuration compilation config

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

1 个答案:

答案 0 :(得分:1)

  

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

您的配置文件中固有的确实是与可执行二进制文件分开的文件,这两个文件可以独立操作。

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

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

其他想法:

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

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

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

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