当我需要在linux下解析一个简单的配置文件时,使用什么c lib?

时间:2010-02-12 09:01:08

标签: c linux

假设我有一个简单的配置文件,我的程序需要读取/解析。

让我们说它看起来有点像这样:

#Some comment
key1=data1
key2=data2

我是否可以使用标准的c lib而不是编写自己的解析器?

由于 约翰


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

7 个答案:

答案 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)

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

https://github.com/taneryilmaz/libconfigini

请参阅tests目录以了解用法。

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

这是我成功使用的一个:

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

它很小而且独立。