簡介
iniparser是針對INI文件的解析器。INI文件則是一些系統(tǒng)或軟件的配置文件。
編譯安裝方法
1.配置編譯環(huán)境
安裝wget工具。
yum install wget -y
2.獲取源碼
獲取“iniparser-3.1”源碼包。
cd /usr/local/src
wget https://codeload.github.com/ndevilla/iniparser/tar.gz/v3.1
3.編譯和安裝
1)解壓軟件包。
cd /usr/local/src
tar -zxvf v3.1
2)進入iniparser的安裝目錄。
cd iniparser-3.1/
3)安裝iniparser。
make
4)編譯成功后,檢查是否生成庫文件和頭文件。
a.檢查庫文件。
cd /usr/local/src/iniparser-3.1
ls
回顯信息如下,生成靜態(tài)庫文件“libiniparser.a”和動態(tài)庫文件“libiniparser.so.0”。
AUTHORS doc html INSTALL libiniparser.a libiniparser.so.0 LICENSE Makefile README src test
b.檢查頭文件。
cd /usr/local/src/iniparser-3.1/src
ls
回顯信息如下,生成頭文件“dictionary.h”和“iniparser.h”。
dictionary.c dictionary.h dictionary.o iniparser.c iniparser.h iniparser.o
4.運行和驗證
1)測試iniparser是否安裝完成。
a.創(chuàng)建iniparser的測試程序路徑。
cd /usr/local/src
mkdir iniparser_test
cd iniparser_test/
b.拷貝相關(guān)庫文件和頭文件到測試路徑。
cp /usr/local/src/iniparser-3.1/src/dictionary.h /usr/local/src/iniparser_test/
cp /usr/local/src/iniparser-3.1/src/iniparser.h /usr/local/src/iniparser_test/
cp /usr/local/src/iniparser-3.1/libiniparser.a /usr/local/src/iniparser_test/
cp /usr/local/src/iniparser-3.1/libiniparser.so.0 /usr/local/src/iniparser_test/
c.創(chuàng)建待測試的配置文件“example.ini”。
vim example.ini
編輯如下內(nèi)容,并保存退出。
[tcp]
port = 8000;
ip = 127.0.0.1;
d.創(chuàng)建運行程序測試iniparser的功能。
vim example.c
編輯如下內(nèi)容,并保存退出。
#include <stdio.h>
#include <stdlib.h>
#include "iniparser.h"
int main(void)
{
dictionary *ini;
int n = 0;
char *str;
ini = iniparser_load("example.ini");//parser the file
if(ini == NULL)
{
fprintf(stderr,"can not open %s","example.ini");
exit(EXIT_FAILURE);
}
printf("dictionary obj:\n");
iniparser_dump(ini,stderr);//save ini to stderr
printf("\n%s:\n",iniparser_getsecname(ini,0));//get section name
n = iniparser_getint(ini,"tcp:port",-1);
printf("port : %d\n",n);
str = iniparser_getstring(ini,"tcp:ip","null");
printf("ip : %s\n",str);
iniparser_freedict(ini);//free dirctionary obj
return 0;
}
e. 編譯運行“example.c”程序。
gcc example.c -o example -L. -liniparser
./example
回顯信息如下,則表示iniparser安裝成功且可正常使用。
dictionary obj:
[tcp]=UNDEF
[tcp:port]=[8000]
[tcp:ip]=[127.0.0.1]
tcp:
port : 8000
ip : 127.0.0.1