比方说,我有一个简单的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页的代码。
http://code.jellycan.com/simpleini/
您可以使用简单的INI文件。