程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> libConfuse的使用,libConfuse使用

libConfuse的使用,libConfuse使用

編輯:關於C語言

libConfuse的使用,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的方式還是快了不少。本來還想上傳我的測試代碼以及配置文件,但發現不提供上傳附件,就算了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved