我有一个C程序,它在运行时从配置文件中读取。此文件必须与可执行程序位于同一目录中。有没有办法将配置文件绑定或编译为可执行文件,当我将可执行文件复制到其他地方时,我也不必复制配置文件?
答案 0 :(得分:1)
有没有办法将配置文件绑定或编译为可执行文件,当我将可执行文件复制到别处时,我也不必复制配置文件?
您的配置文件中固有的确实是与可执行二进制文件分开的文件,这两个文件可以独立操作。
如果仅在编译时执行程序配置,则可以将配置数据嵌入到程序中。这带来了额外的优势,您无需文件I / O即可访问配置数据。这将涉及您的配置过程生成要编译到程序中的源代码。
但是,如果您的配置文件是传统形式的配置文件,则需要在编译后的某个时间进行调整,甚至可能由最终用户进行调整,然后配置数据无法集成到可执行二进制文件中。在那种情况下,不,你问的是不可能的。然后,无论何时可执行文件,都不能确保移动或复制配置文件。
其他想法:
要求配置文件与二进制文件并置,这在许多系统中存在根本问题,因为文件系统上二进制文件的位置没有直接暴露给正在运行的程序。
可执行文件通常更好地依赖于其配置文件的默认位置,而与二进制文件本身的位置无关。这样的默认位置可以是系统范围的,每用户的,也可以是两者的组合。
依赖配置文件的程序能够自动或响应特殊参数编写默认配置文件,这是很常见的。但是,自动替代方案更适用于具有每用户配置的程序,而不适用于具有全局配置的程序。
当程序通过文件进行运行时配置时,通常最好提供通过命令行参数指定要使用的文件的选项。