假设我有一个简单的配置文件,我的程序需要读取/解析。
让我们说它看起来有点像这样:
#Some comment
key1=data1
key2=data2
我是否可以使用标准的c lib而不是编写自己的解析器?
由于 约翰
注意:今天我有自己的小解析器,但必须有一些标准的库可以解决这个简单的问题。
答案 0 :(得分:10)
libconfig但它确实比您要求的更多
答案 1 :(得分:6)
为什么不直接使用GLIB?
在无数其他事情中,它具有用于解析INI的库函数,如配置文件:
https://developer.gnome.org/glib/stable/glib-Key-value-file-parser.html
除此之外,它还支持数据类型(列表,哈希表,字符串,高速缓存),线程,平台中立抽象,单元测试,错误处理和许多其他很棒的东西。
对我而言,它是最有用的C库,我需要有一个很好的理由来编写一个不使用这个库的C程序。
答案 2 :(得分:6)
我觉得这里值得一提libConfuse,并引用它的描述:
libConfuse是一个配置文件解析器库,根据ISC许可条款许可,并用C语言编写。它支持部分和(列表)值(字符串,整数,浮点数,布尔值或其他部分),以及一些其他功能(例如单/双引号字符串,环境变量扩展,函数和嵌套包含语句)。它使用简单的API将配置文件功能添加到程序中非常容易。
libConfuse的目标不是具有大量功能的配置文件解析器库。相反,它旨在易于使用并快速与您的代码集成。 libConfuse之前被称为libcfg,但其名称已更改为不会与其他类似的库混淆。
它似乎与已经提到的libconfig非常相似。 A study of the existing libraries to read from configuration files中有一个简短的比较,对于任何选择替代方案的人来说,这可能是一个有用的开端。
答案 3 :(得分:4)
如果您需要非常小巧简单的INI解析器(非常适合路由器等嵌入式系统),请尝试INIH。它只有2-3页的代码。
答案 4 :(得分:3)
答案 5 :(得分:1)
http://code.jellycan.com/simpleini/
您可以使用简单的INI文件。
答案 6 :(得分:1)