在 Linux 下用 C++ 写程序时,“配置文件在哪里”取决于你自己怎么设计,以及遵循哪种惯例。下面按常见情况给你一个清晰说明。
~/.config/<程序名>/<配置文件>
例如:
~/.config/myapp/config.ini
读取方式(C++):
#include <stdlib.h>
#include <string>
std::string getConfigPath() {
const char* home = getenv("HOME");
return std::string(home) + "/.config/myapp/config.ini";
}
/etc/<程序名>/<配置文件>
例如:
/etc/myapp/config.ini
通常:
./config.ini
适合:
export MYAPP_CONFIG=/path/to/config.ini
C++ 中读取:
const char* cfg = getenv("MYAPP_CONFIG");
[server]
host = 127.0.0.1
port = 8080
解析库:
{
"server": {
"host": "127.0.0.1",
"port": 8080
}
}
常用库:
推荐顺序:
./myapp --config /path/to/config.ini
~/.config/etc/etc/myapp/config.ini # 默认
~/.config/myapp/config.ini # 用户覆盖
告诉我:
我可以直接告诉你在哪、怎么改。
如果你愿意,我也可以: