C语言ini形式配置文件解析库——iniparser
最近在做一个嵌入式设备开发项目,主要使用C语言,当碰到配置文件解析时遇到了问题,由于水平太差,自己拿链表改改写了一个,发现并不能很好地满足项目需求,于是google发现了这么个轮子,iniparser。
介绍
下载
官方网站:http://ndevilla.free.fr/iniparser
Github:https://github.com/ndevilla/iniparser
目前最新的版本已经达到了4.1,可以选择新版本下载。
两种使用方法
1.编译生成动态链接库
a.解压
tar -zxvf iniparser-3.1.tar.gz
cd tar -zxvf iniparser
b.编译
make
拷贝src下的头文件dictionary.h和iniparser.h以及压缩包目录下的静态库libiniparser.a和动态库libiniparser.so.1到目标文件系统的对应目录下。
2.直接编译源码使用
复制src下的dictionary.h,iniparser.h,dictionary.h和iniparser.h到项目目录,将文件加入到项目Makefile编译目标里。
API
dictionary.h里面声明了一些直接解析ini file的API,iniparser.h里面声明了一些提供用户操作的API。iniparser.h里面的API是对dictionary.h里面API的再次封装,以提供用户友好性。
1.iniparser.h中的API
int iniparser_getnsec(dictionary * d); //获取dictionary对象的section个数
char * iniparser_getsecname(dictionary * d, int n); //获取dictionary对象的第n个section的名字
void iniparser_dump_ini(dictionary * d, FILE * f); //保存dictionary对象到file
void iniparser_dumpsection_ini(dictionary * d, char * s, FILE * f); //保存dictionary对象一个section到file
void iniparser_dump(dictionary * d, FILE * f); //保存dictionary对象到file
int iniparser_getsecnkeys(dictionary * d, char * s); //获取dictionary对象某个section下的key个数
char ** iniparser_getseckeys(dictionary * d, char * s); //获取dictionary对象某个sec