INI 文件操作
1.1. INI 文件概要
INI 文件是 “Initialization File” 的缩写,意为初始化文件。INI 文件是 Windows 系统中常见的配置文件保存格式,目前也广泛用作 Linux 的配置文件。INI 文件由“节 (Section)”、“键 (Key)”和“值 (Value)”组成。“节”的表示方式类似于 [Section1 Name],使用方括号 [] 包围。这表示一个段落的开始。由于 INI 文件可能在整个项目中共享,因此需要使用“节”来区分不同用途的参数区域。“键”和“值”组合的表示方式为 KeyName=value,并使用等号 = 分隔。INI 文件中的注释用分号 ; 表示,从分号之后到该行末尾的所有字符都会被视为注释。示例如下。请注意,值(value)的类型仅支持 int 型和 string 型。
; 注释文本 INI 文件数据格式示例(配置文件内容)[Section1 Name]KeyName1=value1KeyName2=value2...[Section2 Name]KeyName21=value21KeyName22=value221.2. 快速开始
1.2.1 准备开发环境
在 PC 上的 Ubuntu 系统中执行 run 脚本,进入 EASY-EAI 编译环境。详细如下。
cd ~/develop_environment./run.sh 22041.2.2 下载源代码并编译示例
在 EASY-EAI 编译环境下,创建用于管理源代码仓库的目录。
cd /optmkdir EASY-EAI-Toolkitcd EASY-EAI-Toolkithttps://dl.dragonwake.com/download/rv1126b/embedded/EASY-EAI-Toolkit-1126B/Demos.zip
从上述链接下载 Demos.zip 压缩文件,上传到虚拟机的 /opt/EASY-EAI-Toolkit 目录并解压。 移动到对应示例的目录,并执行编译操作。具体命令如下。
cd EASY-EAI-Toolkit-1126B/Demos/common-ini/./build.sh💡 注意:由于依赖库位于开发板上,因此交叉编译过程中必须保持 /mnt 的挂载。

1.2.2 下载源代码并编译示例 图7
1.2.3 运行示例
通过串口调试或 SSH 调试进入开发板后台,并移动到示例所在位置。如下所示。
cd /userdata/Demo/common-ini示例的运行命令如下。
./test-iniWrapper1.2.4 运行结果
运行结果如下所示。

1.2.4 运行结果 图8
关于 API 的详细说明以及 API 调用(本示例的源代码),请参见以下说明。
1.3. INI 文件 API 说明
1.3.1 包含/引用方法
EASY EAI API 库位于本仓库的 easyeai-api 目录中。为了使客户能够在本地项目中直接调用 EASY EAI API 库,下面列出了项目中需要链接的库、头文件等内容。
| 说明 | CMake 中的写法 | Makefile 中的写法 |
|---|---|---|
| api.cmake | ${common_root}/ini/api.cmake | 无 |
| 头文件目录 | ${INI_INCLUDE_DIRS} | -I ../../easyeai-api/common/ini |
| 源文件目录 | ${INI_SOURCE_DIRS} | ../../easyeai-api/common/ini |
| 库文件目录 | 无 | 无 |
| 库链接参数 | ${INI_LIBS} | 无 |
API 源代码路径为 EASY-EAI-Toolkit-1126B/easyeai-api/common/ini/。用户可以通过源代码查看接口实现,也可以直接修改源代码。
1.3.2 从 INI 读取整数数据
函数原型如下。
int32_t ini_read_int(const char \*file, const char \*pcSection, const char \*pcKey, int \*pVal);具体说明如下。
| 函数名:ini_read_int() | 详细信息 |
|---|---|
| 头文件 | easyeai-api/common/ini/ini_wrapper.h |
| 输入参数 | file:配置文件路径 pcSection:包含参数的节 pcKey:参数的键 pVal:用于存储读取到的参数值的 int 型指针 |
| 返回值 | 成功时返回 0 失败时返回 -1 |
| 注意事项 | 无 |
1.3.3 向 INI 写入整数数据
函数原型如下。
int32_t ini_write_int(const char \*file, const char \*pcSection, const char \*pcKey, int Val);具体说明如下。
| 函数名:ini_write_int() | 详细信息 |
|---|---|
| 头文件 | easyeai-api/common/ini/ini_wrapper.h |
| 输入参数 | file:配置文件路径 pcSection:包含参数的节 pcKey:参数的键 Val:要写入的 int 型参数值 |
| 返回值 | 成功时返回 0 失败时返回 -1 |
| 注意事项 | 如果配置文件不存在,将自动创建配置文件。 |
1.3.4 从 INI 读取字符串数据
函数原型如下。
int32_t ini_read_string(const char \*file, const char \*pcSection, const char \*pcKey, char \*pcStr, int len);具体说明如下。
| 函数名:ini_read_string() | 详细信息 |
|---|---|
| 头文件 | easyeai-api/common/ini/ini_wrapper.h |
| 输入参数 | file:配置文件路径 pcSection:包含参数的节 pcKey:参数的键 pcStr:用于存储读取到的参数值的字符串指针 len:用于存储参数的缓冲区最大长度(字节数) |
| 返回值 | 成功时返回 0 失败时返回 -1 |
| 注意事项 | 无 |
1.3.5 向 INI 写入字符串数据
函数原型如下。
int32_t ini_write_string(const char \*file, const char \*pcSection, const char \*pcKey, const char \*pcStr);具体说明如下。
| 函数名:ini_write_string() | 详细信息 |
|---|---|
| 头文件 | easyeai-api/common/ini/ini_wrapper.h |
| 输入参数 | file:配置文件路径 pcSection:包含参数的节 pcKey:参数的键 pcStr:指向要写入的字符串数据的指针 |
| 返回值 | 成功时返回 0 失败时返回 -1 |
| 注意事项 | 如果配置文件不存在,将自动创建配置文件。 |
1.4. INI 文件操作函数的使用示例
使用的代码路径为 EASY-EAI-Toolkit-1126B/Demos/common-ini/test-iniWrapper.c,程序逻辑如下。

1.4. INI 文件操作函数的使用示例 图9