签出CCANciniparser。它是the original iniparser(不再维护)的分支,这使得解析INI样式的配置文件变得容易。在
示例中的代码(几乎被单元测试所镜像):#include
#include
#include
#define CONFIG_FILE "/etc/config.ini"
int main(int argc, char *argv[])
{
dictionary *d;
char *val1;
bool val2;
double val3;
int val4;
d = ciniparser_load(CONFIG_FILE);
if (d == NULL)
return 1;
val1 = ciniparser_getstring(d, "daemon:pidfile", NULL);
val2 = ciniparser_getboolean(d, "daemon:debug", false);
val3 = ciniparser_getdouble(d, "daemon:maxload", 3.5);
val4 = ciniparser_getint(d, "daemon:maxchild", 5);
ciniparser_freedict(d);
return 0;
}
当然,您只需删除树中所需的几个文件,#include "iniparser.h",除非您想运行单元测试,否则与其他CCAN模块没有依赖关系。在
示例配置可能如下所示:
^{pr2}$
获取stooges:shemp的值将生成一个静态分配的questionable,您可以按原样使用(不需要修改)或分配并复制(即strdup())。没什么比这容易的了。用一个简单的互斥体及其线程安全包装对字典的访问。在
CCAN是一个综合性的C档案网络。想想CPAN,只要C。这是一个项目Rusty Russell前一段时间开始,终于获得一些牵引力。在
免责声明:我维护模块。在