From 7b06207f6f539a1828046ef6b8ff0d3dc3d9480d Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Wed, 15 Jul 2026 11:55:03 +0800 Subject: [PATCH] doc/ini_file_reader-Chinese.md beautify --- doc/ini_file_reader-Chinese.md | 25 +++++++++++++++---------- src/ini_file_reader.c | 9 ++++----- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/doc/ini_file_reader-Chinese.md b/doc/ini_file_reader-Chinese.md index d11b573..c2951ed 100644 --- a/doc/ini_file_reader-Chinese.md +++ b/doc/ini_file_reader-Chinese.md @@ -10,28 +10,31 @@ libfastcommon是在github开源的⼀个C函数库。它提供了ini⽂件解析 ## ini_file_reader的主要特点: ### 1、⽀持section +例如: ``` - 例如: [workers] +[workers] +threads = 4 +# 其他配置项 ``` ### 2、⼀个配置项可以出现多次 +通过iniGetValues或者iniGetValuesEx获取。例如: ``` - 通过iniGetValues或者iniGetValuesEx获取。例如: - tracker_server = ip1 - tracker_server = ip2 +tracker_server = 172.16.168.10 +tracker_server = 172.16.168.11 ``` ### 3、 #include指令包含其他配置⽂件 +可以包含本地配置⽂件,也可以包含URL(目前仅⽀持HTTP)。例如: ``` - 可以包含本地⽂件,也可以包含URL(目前仅⽀持HTTP)。例如: - #include http.conf +#include http.conf ``` ### 4、 #@function指令⽀持标注 +配置项的取值为扩展(外部)动态库的返回值。 +⽀持三个内置标注: ``` - 配置项的取值为扩展(外部)动态库的返回值 - V1.39⽀持三个内置标注: I. LOCAL_IP_GET [inner | private | outer | public] 获取本机IP地址 inner或private表示获取内网IP,outer或public表示获取外网IP [index]表示获取指定序号的本机IP,0表示获取第一个IP,-1表示获取最后一个IP, @@ -41,8 +44,8 @@ libfastcommon是在github开源的⼀个C函数库。它提供了ini⽂件解析 可以引用环境变量,格式为 %{env::VARIABLE},例如 %{env::FASTDFS_IPADDR} ``` -``` 配置⽰例: +``` #@function SHELL_EXEC host = hostname @@ -58,12 +61,14 @@ libfastcommon是在github开源的⼀个C函数库。它提供了ini⽂件解析 ### 5、 #@add_annotation 扩展#@function标签 -``` 格式: +``` #@add_annotation <动态库文件名> [参数1, 参数2, ...] +``` 参数个数0到3个。 使用libshmcache扩展标签CONFIG_GET示例: +``` #@add_annotation CONFIG_GET /usr/lib/libshmcache.so /etc/libshmcache.conf #@function CONFIG_GET diff --git a/src/ini_file_reader.c b/src/ini_file_reader.c index a69c1a3..c8c7875 100644 --- a/src/ini_file_reader.c +++ b/src/ini_file_reader.c @@ -375,20 +375,19 @@ static char *doReplaceVars(IniContext *pContext, const char *param, } else { value = NULL; } + if (value != NULL) { len = strlen(value); - } - else { + } else { logWarning("file: "__FILE__", line: %d, " - "name: %s NOT found, keep the origin", + "variable \"%s\" NOT found, keep the origin", __LINE__, name); value = start - 2; len = p - value; } pDest += iniCopyBuffer(pDest, FAST_INI_ITEM_VALUE_SIZE - (pDest - output), value, len); - } - else { + } else { if (pDest - output < FAST_INI_ITEM_VALUE_LEN) { *pDest++ = *p++; }