在啟動程序或者服務器時,都要讀取些配置文件,windows有自帶的WritePrivateProfileString可以將配置信息寫入ini文件;但是跨平台的話,還是用boost的比較好。
如果配置文件名為test.ini,里面的配置信息如下:
[command]
host = 127.0.0.1
port = 7000
minsize = 2
maxsize = 10
timeout = 10
要將這些配置信息讀出來,程序的實現如下:
#include <iostream>
#include <string>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/ini_parser.hpp>
void read_configure_ini()
{
boost::property_tree::ptree pt, commonCfg;
boost::property_tree::ini_parser::read_ini("./test.ini", pt);
string NodeIpStr;
int port;
int minsize;
int maxsize;
int timeout;
commonCfg= pt.get_child("command");
NodeIpStr = commonCfg.get<std::string>("host", "127.0.0.1");
port = commonCfg.get<int>("port", 7000);
minsize = commonCfg.get<int>("minsize", 2);
maxsize = commonCfg.get<int>("maxsize", 10);
timeout = commonCfg.get<int>("timeout", 10);
cout << "the ip is:" << redisNodeIpStr << endl;
cout << "the port is:" << port << endl;
cout << "the minsize is:" << minsize << endl;
cout << "the maxsize is:" << maxsize << endl;
cout << "the timeout is:" << timeout << endl;
}
int main()
{
read_configure_ini();
return 0;
}
這樣的話就能將讀取到的ini文件的配置信息加載到定義的這些變量當中