当我需要在linux下parsing一个简单的configuration文件时,需要什么样的库文件?

比方说,我有一个简单的configuration文件,我的c程序需要读取/parsing。

假设它看起来有点像这样:

#Some comment key1=data1 key2=data2 

有没有一个标准的库,我可以使用,而不是写我自己的parsing器?

感谢Johan


注意 :今天我有我自己的小parsing器,但是必须有一些标准的库来解决这个简单的问题。

libconfig,但它比你问的要多得多

为什么不使用GLIB?

在无数的其他事情中,它具有解析INI类似配置文件的库函数:

http://library.gnome.org/devel/glib/2.22/glib-Key-value-file-parser.html

除此之外,它还支持数据类型(列表,哈希表,字符串,缓存),线程,平台中性抽象,单元测试,错误处理和其他很多好东西。

对我来说这是最有用的C库,我需要有一个非常好的理由来编写一个C程序而不使用这个库。

我觉得这里值得一提的是libConfuse ,并引用它的描述:

libConfuse是一个配置文件解析器库,根据ISC许可条款获得许可,并以C语言编写。它支持值(字符串,整数,浮点数,布尔值或其他部分)的部分和(列表)值,以及其他一些特性(如单/双引号字符串,环境变量扩展,函数和嵌​​套包含语句)。 这使得使用简单的API将配置文件功能添加到程序非常容易。

libConfuse的目标不是成为配置文件解析器库,其中包含许多功能。 相反,它的目标是易于使用和快速与您的代码集成。 之前libConfuse被称为libcfg,但其名称已更改为不会将自身与其他类似的库混淆。

看起来和已经提到的libconfig非常相似。 在对现有库的研究中,从配置文件中读取一个简短的比较,可能是任何人在替代方案中选择的一个有用的开始。

如果你需要真正的小而简单的INI解析器(非常适合像路由器这样的嵌入式系统),试试INIH 。 它只有2-3页的代码。

我已经实现了一个简单的C库来解析配置文件:

https://github.com/taneryilmaz/libconfigini

查看测试目录的使用情况。

http://code.jellycan.com/simpleini/

您可以使用简单的INI文件。

这是我成功使用的一个:

http://ndevilla.free.fr/iniparser/

它小而独立。