`
zsxxsz
  • 浏览: 452106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

配置文件的读取

XML 
阅读更多

  配置文件的读取是程序中必要部分,虽然不算复杂,但如果每次都写配置文件的分析提取代码也是件烦人的事。现在流行的配置文件格式有:ini,xml ,简单name-value对等格式,ACL库中实现了最简单的 name-value对格式的配置文件,该文件格式有点类似于 xinetd.conf 的格式,文件格式如下:

 

test.cf:

 

service myapp {

    my_addr = 127.0.0.1

    my_port = 80

    my_list = www.test1.com, www.test2.com, www.test3.com, \

                   www.test4.com, www.test5.com, www.test6.com

    ...

}

 

  其中的 "\"  是连接符,可以把折行的数据连接起来。

  下面的例子读取该配置文件并进行解析:

static int var_cfg_my_port;

static ACL_CFG_INT_TABLE __conf_int_tab[] = {
  /* 配置项名称, 配置项缺省值, 存储配置项值的地址, 保留字, 保留字 */
  { "my_port", 8080, &var_cfg_my_port, 0, 0 },
  { 0, 0 , 0, 0, 0 }
};

static char *var_cfg_my_addr;
static char *var_cfg_my_list;

static ACL_CFG_STR_TABLE __conf_str_tab[] = {
  /* 配置项名称, 配置项缺省值, 存储配置项值的地址 */
  { "my_addr", "192.168.0.1", &var_cfg_my_addr },
  { "my_list", "www.test.com", &var_cfg_my_list },
  { 0, 0, 0 }
};

static int var_cfg_my_check;

static ACL_CFG_BOOL_TABLE __conf_bool_tab[] = {
  /* 配置项名称, 配置项缺省值, 存储配置项值的地址 */
  { "my_check", 0, &var_cfg_my_check },
  { 0, 0, 0 }
};

void test(void)
{
  ACL_XINETD_CFG_PARSER *cfg;  // 配置解析对象

  cfg = acl_xinetd_cfg_load("test.cf");  // 读取并解析配置文件
  acl_xinetd_params_int_table(cfg, __conf_int_tab);  // 读取所有 int 类型的配置项
  acl_xinetd_params_str_table(cfg, __conf_str_tab);  // 读取所有字符串类型的配置项
  acl_xinetd_params_bool_table(cfg, __conf_bool_tab);  // 读取所有 bool 型的配置项

  acl_xinetd_cfg_free(cfg);  // 释放内存
}

  通过调用 acl_xinetd_params_xxx_table() 函数,直接将配置项的值赋给变量,这样省去了很多麻烦。

 

    个人微博:http://weibo.com/zsxxsz

分享到:
评论

相关推荐

    Spring Boot多模块配置文件读取

    总之,Spring Boot的多模块配置文件读取策略旨在提高项目的可扩展性和可维护性。通过合理的配置文件组织和使用`@ConfigurationProperties`,我们可以有效地管理各模块的配置,同时保持代码的清晰和整洁。理解并熟练...

    C++配置文件读取

    配置文件读取是C++应用程序中的常见任务,通过理解基本的文件I/O操作和可能涉及的库,开发者可以灵活地处理各种格式的配置文件。在Visual C++ 2010环境下,这个过程更加便捷,因为它提供了良好的集成开发环境和支持...

    c# 通过配置文件读取数据库连接字符创,读取配置文件值

    本篇文章将深入探讨如何使用C#通过配置文件读取数据库连接字符串和其他配置值,以及这样做的好处。 首先,我们需要了解C#中的配置文件通常是基于`.config`格式的,如`app.config`或`web.config`,它们存储了应用的...

    java ini配置文件读取

    Java INI配置文件读取是Java开发中常见的一项任务,主要涉及到对INI格式配置文件的解析、读取、以及可能的修改操作。INI文件是一种简单的文本格式,常用于存储应用程序的配置参数,其结构通常由多个节(Section)...

    mysql配置文件读取顺序

    以下是关于MySQL配置文件读取顺序的详细说明。 ### 一、Windows环境下的配置文件读取顺序 在Windows操作系统中,MySQL服务遵循以下顺序读取配置文件: 1. **my.ini或my.cnf**:这是MySQL首选的配置文件名,通常...

    fst 配置文件读取

    本文将围绕“fst配置文件读取”这一主题,深入探讨如何处理和理解这类文件,以及它在实际工作中的应用。 首先,让我们了解“fst”可能的含义。在Linux或Unix系统中,"fst"可能是“File System Table”的缩写,它...

    配置文件读取工具类(Java)

    以下是一个关于如何构建和使用配置文件读取工具类的详细说明。 1. **配置文件格式** 配置文件通常使用如INI、XML或JSON等易于解析的格式。在Java中,最常见的是使用.properties文件,因为它们简洁且易于处理。例如...

    config_ini配置文件读取_

    在本案例中,我们将讨论如何使用Qt库在界面上进行`config_ini`配置文件的读取和写入操作。 Qt是一个跨平台的C++图形用户界面应用程序开发框架,提供了丰富的API用于处理文件I/O和GUI构建。对于`config.ini`文件的...

    C++读取配置文件

    在C++编程中,读取配置文件是一项常见...通过上述步骤,你可以在C++项目中创建一个灵活的配置文件读取系统,为你的程序提供可配置性,同时避免了重复编写解析代码的麻烦。记得在实际项目中根据需求进行适当扩展和优化。

    配置文件读取

    Java配置文件读取,采用单例模式加载config.properties

    5基础 2:配置文件读取(1).md

    配置文件读取是现代软件开发中非常关键的一个环节,尤其是在需要高度可配置性的应用程序中。在微服务架构中,API服务作为微服务系统的重要组成部分,其配置管理显得尤为重要。本节将详细介绍API服务配置文件的读取...

    配置文件读取JAVA工具类

    系统开发的时候,都会涉及到一些配置文件的读取,为方便从配置文件中读取我们预先设置的值,我做了一个简单配置文件读取工具类。这个类主要基于apache开源项目commons-configuration,附件是该工具类完整代码,仅供...

    swing入门样例,配置文件读取,画面显示

    配置文件读取是应用程序中常见的功能,它允许程序在运行时动态加载和使用外部配置参数。这通常涉及到Java的I/O流操作,如使用InputStream或BufferedReader来读取文本文件。在Swing应用中,配置文件可能包含窗口布局...

    C语言功能模块备用:配置文件读取 /debug日志记录 ...等等

    在C语言编程中,配置文件读取和调试日志记录是两个重要的功能模块,它们在软件开发中扮演着不可或缺的角色。下面将详细讲解这两个知识点。 ### 配置文件读取 配置文件通常用来存储应用程序的参数、设置或环境变量...

    【ADO.NET】六、DBHelper(下)、分层架构、配置文件读取

    【ADO.NET】六、DBHelper(下)、分层架构、配置文件读取 在软件开发中,分层架构是一种常见的设计模式,它将复杂的系统分解为多个独立的层次,每个层次负责特定的功能,以此提高代码的可维护性和可扩展性。在.NET...

    基于C语言功能模块备用:配置文件读取 /debug日志记录 等

    本主题聚焦于两个关键的C语言编程实践:配置文件读取和调试日志记录。这两个功能对于软件开发和维护至关重要,它们允许程序根据用户需求进行定制,并提供故障排查的手段。 首先,我们来讨论配置文件读取。配置文件...

    LabVIEW 写入与读取配置文件

    在LabVIEW中,配置文件是用于存储应用程序设置、参数或状态的关键元素。这些文件通常以.ini或.xml格式存在,允许程序在运行时根据这些配置进行自定义行为。本教程将深入探讨如何在LabVIEW中进行配置文件的写入与读取...

Global site tag (gtag.js) - Google Analytics