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

Joh*_*han 20 c linux

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

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

#Some comment
key1=data1
key2=data2
Run Code Online (Sandbox Code Playgroud)

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

谢谢约翰


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

f4.*_*f4. 11

libconfig但它确实比你要求的要多得多


ahe*_*ahe 6

为什么不使用GLIB?

在无数其他事物中,它具有用于解析INI的库函数,如配置文件:

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

除此之外,它还支持数据类型(列表,哈希表,字符串,高速缓存),线程,平台中立抽象,单元测试,错误处理和许多其他伟大的东西.

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


sam*_*mpi 6

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

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

libConfuse的目标不是具有大量功能的配置文件解析器库.相反,它旨在易于使用并快速与您的代码集成.libConfuse之前被称为libcfg,但其名称已更改为不与其他类似库混淆.

它似乎与已经提到的libconfig非常相似.现有库的A研究中有一个简短的比较,用于从配置文件读取,对于任何选择替代方案的人来说,这可能是一个有用的开端.


Mar*_*555 5

如果您需要非常小而简单的 INI 解析器(非常适合路由器等嵌入式系统),请尝试INIH。它只有 2-3 页的代码。