THCommandStatus = (
{
Status = "1";
index = 5;
},
{
Status = "2";
index = 8;
},
{
Status = "3";
index = 7;
},
{
Status = "4";
index = 0;
} );
比如这是配置文件的内容,我要修改Status和index。
代码如下:
config_t cfg;
const char* value = nullptr;
const char* cfg_data = nullptr;
char g_AnyProcessPath[256];
config_init(&cfg);
// Read the file. If there is an error, report it and exit.
if (!config_read_file(&cfg, cfg_filename)) {
BLOG_DEBUG("can't open cfg file");
return -1;
}
config_setting_t* Platform = config_lookup(&cfg, "THCommandStatus");
int Platform_count = Platform ? config_setting_length(Platform) : 0;
for (unsigned int i = 0; i < Platform_count; i++) {
int TcpPort = 0;
std::string StartRequest = "";
std::string StopRequest = "";
std::string HoldUri = "";
config_setting_t* process_item = config_setting_get_elem(Platform, i);
config_setting_t* Status_ = config_setting_get_member(process_item, "Status");
config_setting_t* index_ = config_setting_get_member(process_item, "index");
switch (i)
{
case 0:
config_setting_set_string(Status_, "666");
config_setting_set_int(index_, i);
break;
case 1:
config_setting_set_string(Status_, "777");
config_setting_set_int(index_, i);
break;
case 2:
config_setting_set_string(Status_, "888");
config_setting_set_int(index_, i);
break;
case 3:
config_setting_set_string(Status_, "999");
config_setting_set_int(index_, i);
break;
default:
break;
}
}
// 写入文件
if (!config_write_file(&cfg, cfg_filename)) {
BLOG_DEBUG(fmt::format("Error:{}", config_error_text(&cfg)));
}
config_destroy(&cfg);
然后修改指定的参数之后,内容如下:
THCommandStatus = (
{
Status = "666";
index = 0;
},
{
Status = "777";
index = 1;
},
{
Status = "888";
index = 2;
},
{
Status = "999";
index = 3;
} );