libConfuse的使用

前言

在软件编程中经常会使用到一些参数,在存储方面一般有使用XML的,也有使用文本文件的,或者使用数据库的等。我们软件平台一些参数是使用XML文件存储,在读取方面的速度还可以,但在写回文件速度一般。也有一些参数是使用文本文件存储,读取和保存都是自己实现,适用范围不够广。因此,想使用统一存储方式,以及一套接口来读取和保存参数。经过考察,觉得开源的libConfuse不错。

 

libConfuse简介

libconfuse 是一个用C实现配置文件解析器库,授权的ISC许可的条件下,它支持段(列表)和值(字符串,整数,浮点数,布尔值或其他部分),以及一些其他功能(如单/双引号字符串,环境变量扩展,功能嵌套include语句)。它可以添加配置文件的能力,使用简单的API使程序读取配置文件非常容易。详细的介绍请访问:http://www.nongnu.org/confuse/,代码托管在github:https://github.com/martinh/libconfuse

 

下载libConfuse

目前最新的版本是2.7,访问http://www.nongnu.org/confuse/,在download是下载即可。

 

配置并使用libConfuse

下载完解压缩即可,我运行的环境是ubuntu linux。

(1)生成Makefile。进入confuse-2.7目录,运行./configure命令,会自动生成Makefile文件。

(2)编译libConfuse库。在src目录下运行make命令就可以生成libConfuse库了。

(3)编译使用例子。在examples目录下运行make命令就可以生成几个例子程序。

(4)执行例子程序。在examples目录下有三个例子:ftpconf,reread,simple,分别执行,可以看到运行结果。对照代码看即可快速入门。

 

移植libConfuse

confuse-2.7目录下有很多内容,对于一般使用都是不需要关心。我希望是把它的源码集成到自己的软件中一起编译。下面简单介绍一下移植的要点。

(1)创建另一个目录confuse,拷贝config.h,以及目录src下confuse.c、confuse.h、lexer.c。

(2)把config.h中的 ” #define ENABLE_NLS 1 “ 注释掉,我的编译不过。你可以不注释,看能否编译得过。

(3)confuse.c中原来的 ” # include <config.h> “ 改为" # include "config.h" "。因为INCLUDE路径变了。

(4)编写一个小例子,自己编写一个Makefile。多尝试,不解析。

(5)如果不知道如何使用API,可以参考三个例子,以及看头文件confuse.h,这里面对每一个函数都描述得很清楚。

 

性能测试

测试环境有两个,一个是PC上的linux,一个是ARM平台的嵌入linux。配置文件有1.5k行,使用我编写的一个小例子,访问所有的配置项,PC上耗时不超过10ms,ARM上耗时不超过200ms。设置其中某个参数,PC上耗时不超过10ms,ARM上耗时在300左右。速度上还可以,比原来使用XML的方式还是快了不少。本来还想上传我的测试代码以及配置文件,但发现不提供上传附件,就算了。

 

转载于:https://www.cnblogs.com/qinwanlin/p/4284018.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值