跳转到内容

INI 文件操作

1.1. INI 文件概要

INI 文件是 “Initialization File” 的缩写,意为初始化文件。INI 文件是 Windows 系统中常见的配置文件保存格式,目前也广泛用作 Linux 的配置文件。INI 文件由“节 (Section)”、“键 (Key)”和“值 (Value)”组成。“节”的表示方式类似于 [Section1 Name],使用方括号 [] 包围。这表示一个段落的开始。由于 INI 文件可能在整个项目中共享,因此需要使用“节”来区分不同用途的参数区域。“键”和“值”组合的表示方式为 KeyName=value,并使用等号 = 分隔。INI 文件中的注释用分号 ; 表示,从分号之后到该行末尾的所有字符都会被视为注释。示例如下。请注意,值(value)的类型仅支持 int 型和 string 型。

Terminal window
; 注释文本 INI 文件数据格式示例(配置文件内容)
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName21=value21
KeyName22=value22

1.2. 快速开始

1.2.1 准备开发环境

在 PC 上的 Ubuntu 系统中执行 run 脚本,进入 EASY-EAI 编译环境。详细如下。

Terminal window
cd ~/develop_environment
./run.sh 2204

1.2.2 下载源代码并编译示例

在 EASY-EAI 编译环境下,创建用于管理源代码仓库的目录。

Terminal window
cd /opt
mkdir EASY-EAI-Toolkit
cd EASY-EAI-Toolkit

https://dl.dragonwake.com/download/rv1126b/embedded/EASY-EAI-Toolkit-1126B/Demos.zip

从上述链接下载 Demos.zip 压缩文件,上传到虚拟机的 /opt/EASY-EAI-Toolkit 目录并解压。 移动到对应示例的目录,并执行编译操作。具体命令如下。

Terminal window
cd EASY-EAI-Toolkit-1126B/Demos/common-ini/
./build.sh

💡 注意:由于依赖库位于开发板上,因此交叉编译过程中必须保持 /mnt 的挂载。

1.2.2 下载源代码并编译示例 图7

1.2.2 下载源代码并编译示例 图7

1.2.3 运行示例

通过串口调试或 SSH 调试进入开发板后台,并移动到示例所在位置。如下所示。

Terminal window
cd /userdata/Demo/common-ini

示例的运行命令如下。

Terminal window
./test-iniWrapper

1.2.4 运行结果

运行结果如下所示。

1.2.4 运行结果 图8

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 读取整数数据

函数原型如下。

Terminal window
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 写入整数数据

函数原型如下。

Terminal window
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 读取字符串数据

函数原型如下。

Terminal window
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 写入字符串数据

函数原型如下。

Terminal window
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

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