0%

周谈(59)- ini配置文件开源库minIni

前言

最近在写一个通用的测试工具用于认证,针对不同的产品差异不同,通过代码或者编译选项来区分产品太不灵活了。因此,有了使用配置文件来修改的想法。

现写一个当然不如找一个,在AI的时代,使用GPT来辅助编程越来越方便高效了。目前工作中,使用的最多的就是kimi了。大概搜索了一下,找到一个minIni的库。

这是一个小巧且便携的INI文件库,支持读写操作,特别适合嵌入式系统。minIni库是根据Apache许可证2.0版分发的,外加一个例外条款,以明确允许将该库静态链接到商业应用程序,对于我想写的小型的测试程序也很适合。

minIni

这个库本身是支持跨平台的,而且只提供了简单的几个C语言文件,连编译脚本都没写。

最新源代码可以在GitHub上访问:https://github.com/compuphase/minIni,顺便给这个库点了Star,感谢开发者。

我在gitee上面镜像了一份,添加了编译脚本,直接在ARM平台上编译可用, 路径https://gitee.com/fishmwei/minIni

ini配置语法

ini文件语法很简单,主要就是Section 和key-value键值对,示例如下。

1
2
3
4
5
[Network]
hostname=My Computer
address=dhcp
dns = 192.168.1.1
numa=0

库的接口也很简单,支持读写文件和查询相关的字段。

1
2
3
4
5
6
7
8
9
10
11
12
13
int  ini_getbool(const mTCHAR *Section, const mTCHAR *Key, int DefValue, const mTCHAR *Filename);
long ini_getl(const mTCHAR *Section, const mTCHAR *Key, long DefValue, const mTCHAR *Filename);
int ini_gets(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *DefValue, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename);
int ini_getsection(int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename);
int ini_getkey(const mTCHAR *Section, int idx, mTCHAR *Buffer, int BufferSize, const mTCHAR *Filename);

int ini_hassection(const mTCHAR *Section, const mTCHAR *Filename);
int ini_haskey(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Filename);

int ini_putbool(const mTCHAR *Section, const mTCHAR *Key, int Value, const mTCHAR *Filename);
int ini_putl(const mTCHAR *Section, const mTCHAR *Key, long Value, const mTCHAR *Filename);
int ini_puts(const mTCHAR *Section, const mTCHAR *Key, const mTCHAR *Value, const mTCHAR *Filename);

工程也提供了测试程序,使用起来很方便。

minIni_test

更多

树莓派

最近花钱入了一个树莓派5,用来学习。家里的电脑都是X86, 一些ARM相关的程序跑不了,虽然可以用qemu虚拟机,但是也不是很方便。

工欲善其事必先利其器,树莓派操作还是很方便的,而且也不是很贵。


行动,才不会被动!

欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。

欢迎关注

博客地址: https://fishmwei.github.io

掘金主页: https://juejin.cn/user/2084329776486919