我想编写一个unix/linux程序,它将使用配置文件.
我的问题是,我应该在哪里放置文件的位置?
我可以将位置(如/etc)硬编码到程序本身.
但是,我想,如果没有权限的用户可以在其他地方安装它(通过make),比如~.
makefile应该编辑源代码吗?或者它通常以不同的方式完成?
创建一些默认值:
/etc/appname~/.appname然后,如果要允许覆盖这些,请让应用程序检查环境变量.例如
$app_userconfig$app_config其中包含覆盖路径/文件名.
最后添加一个命令行选项,允许在运行时指定配置,例如
-c | --config {filename}通常使用一系列位置来获取位置:
./program -C path/to/config/file.cfg)。char *path_to_config = getenv("PROGRAMCONFIG"); )。stat("./program.cfg")或建立一个字符串来指定“$HOME/.program/config.cfg”或“$HOME/.program.cfg”等stat)。stat("/etc/program/config.cfg",...))。