当前位置: 首页 > news >正文

Libconfig 修改配置文件里的某个节点

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;
  } );

http://www.xdnf.cn/news/149149.html

相关文章:

  • Linux 系统用户管理与权限掌控:从基础到精通
  • 《深入理解计算机系统》阅读笔记之第三章 程序的机器级表示
  • Python判断语句-语法:if,if else,if elif else,嵌套,if else语句扁平式写法,案例
  • LatentSync - 字节联合北交大开源的端到端唇形同步框架-附整合包
  • Cannot read properties of null (reading ‘classList‘)
  • 人工智能的100个关键词系统学习计划
  • Trae 实测:AI 助力前端开发,替代工具还远吗?
  • mysql 导入很慢,如何解决
  • 猿人学题库13题—动态css字体加密 记录
  • JavaScript性能优化实战(5):数据结构与算法性能优化
  • Python爬取天猫畅销榜接口的详细教程
  • Python基础语法:字符串格式化(占位拼接,精度控制,format()函数,快速格式化,表达式格式化)
  • dstream
  • 《深入浅出ProtoBuf:从环境搭建到高效数据序列化》​
  • python基础-requests结合AI实现自动化数据抓取
  • 文档编辑:reStructuredText全面使用指南 — 第三部分 进阶特性
  • 第四章 安全审计
  • HMI与组态,自动化的“灵珠”和“魔丸”
  • 【FastJSON】的parse与parseObject
  • Huffman(哈夫曼)解/压缩算法实现
  • 【多目标进化算法】常见多目标进化算法一览
  • 持久登录的存储
  • 在统信桌面操作系统上修改启动器中软件名称
  • Semantic Kernel也能充当MCP Client
  • PMIC PCA9450 硬件原理全解析:为 i.MX 8M 平台供电的“大脑”
  • 【EDA】Floorplanning(布局规划)
  • 基于自然语言处理的文本生成模型设计
  • Canvas入门教程!!【Canvas篇二】
  • 基于vue框架的电信用户业务管理系统的设计与实现8ly70(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 2025年高校辅导员考试题库及答案