unix程序中的配置位置
我想写一个unix/linux程序,它将使用一个配置文件 我的问题是,我应该把文件的位置放在哪里 我可以将位置(如unix程序中的配置位置,unix,Unix,我想写一个unix/linux程序,它将使用一个配置文件 我的问题是,我应该把文件的位置放在哪里 我可以将位置(如/etc)硬编码到程序本身中 但是,如果没有权限的用户可以(通过make)在其他地方安装它,比如~,我会喜欢它 makefile是否应该编辑源代码?或者它通常是以不同的方式完成的?创建一些默认值: /etc/appname ~/.appname 然后,如果要允许覆盖这些变量,请让应用程序检查环境变量。e、 g $app\u userconfig $app\u config 将
/etc
)硬编码到程序本身中
但是,如果没有权限的用户可以(通过make)在其他地方安装它,比如~
,我会喜欢它
makefile是否应该编辑源代码?或者它通常是以不同的方式完成的?创建一些默认值:
/etc/appname
~/.appname
$app\u userconfig
$app\u config
-c |--config{filename}
-D
选项将文件夹路径/名称传递给编译器。处理这个问题的一种方法是#定义像DEFAULT#PATH这样的东西作为默认安装路径。如果用户想要定义路径,makefile会将-DUSER\u path=which
添加到编译器选项中。如果用户路径存在,则编写代码以使用该路径,否则使用默认路径。通常使用一系列位置来获取位置:
/program-C path/to/config/file.cfg
)char*path_to_config=getenv(“PROGRAMCONFIG”);
)stat(“./program.cfg”)
或建立一个strig来指定“$HOME/.program/config.cfg”或“$HOME/.program.cfg”和stat
that)stat(“/etc/program/config.cfg”,…)
)根据惯例,请参阅文件系统层次结构标准()以获取有关内容应该放在哪里的指导。