C语言利用iniparser库解析INI文件

没什么好说的。

👉iniparser
Linux应用程序编程的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include "iniparser.h"

#define CONFIG_NAME "RTK_4K2K_VBY1_1Seg8Port_new.ini"

#define INIFILE

int main(void)
{
dictionary * ini;
ini = iniparser_load(CONFIG_NAME);

#ifdef INIFILE
FILE * panel_ini = NULL;
panel_ini = fopen(CONFIG_NAME,"w");
if(NULL == panel_ini)
{
printf("open %s fail!\n", CONFIG_NAME);
return -1;
}
iniparser_set(ini,"PANEL:BACKLIGHT_PWM_MAX","199");
iniparser_dump_ini(ini, panel_ini);
fclose(panel_ini);
#else
iniparser_dump_ini(ini, stdout);
#endif

iniparser_freedict(ini);

return 0;
}

iniparser支持读写,但是u-boot不能调用C标准库,移植的话比较麻烦,要重新实现这些用到的库函数。
有一个比较热门的开源库是inih,但是只发现读(解析)操作,没找到是怎么写的。