简介
iniparser是针对INI文件的解析器。INI文件则是一些系统或软件的配置文件。
编译安装方法
1.配置编译环境
安装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
回显信息如下,生成静态库文件“libiniparser.a”和动态库文件“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.创建iniparser的测试程序路径。
cd /usr/local/src
mkdir iniparser_test
cd iniparser_test/
b.拷贝相关库文件和头文件到测试路径。
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.创建待测试的配置文件“example.ini”。
vim example.ini
编辑如下内容,并保存退出。
[tcp]
port = 8000;
ip = 127.0.0.1;
d.创建运行程序测试iniparser的功能。
vim example.c
编辑如下内容,并保存退出。
#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