前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用C语言开源代码库minIni读写“.ini”配置文件

使用C语言开源代码库minIni读写“.ini”配置文件

作者头像
叶茂林
发布2023-12-31 08:06:03
3840
发布2023-12-31 08:06:03
举报
文章被收录于专栏:叶子的开发者社区

minIni是一个用于读取INI文件的C语言开源代码库

然后包含该头文件使用:

代码语言:javascript
复制
#include "minIni.h"

如果是windows的cmake需要加上这个

如果是Linux的cc编译需要加上这个

读字符串用ini_gets,读数用ini_getl

ini_gets函数

该函数用于获取INI文件中指定的键所对应的字符串值。

函数原型:int ini_gets(const char *section, const char *key, const char *def, char *buffer, int size, const char *filename);

参数解释:

  • section:INI文件中的节名称。
  • key:INI文件中的键名称。
  • def:如果INI文件中没有找到指定的键,则使用此字符串作为默认值。可以将其设置为NULL,表示没有默认值。
  • buffer:用于存储获取到的字符串值的缓冲区。
  • size:缓冲区的大小。
  • filename:INI文件的路径和名称。

ini_getl函数

该函数用于获取INI文件中指定的键所对应的整数值。

函数原型:long ini_getl(const char *section, const char *key, long notfound, const char *filename);

参数解释:

  • section:INI文件中的节名称。
  • key:INI文件中的键名称。
  • notfound:如果INI文件中没有找到指定的键,则使用此整数作为默认值。
  • filename:INI文件的路径和名称。

举个例子,假如ini配置文件长这样

那么可以用以下代码读取配置文件

完整代码

代码语言:javascript
复制
#define BuffSize 64
int MAX_LOG_PERUSER;
int MAX_ONLINE_USERS;
char REG_FIFO[BuffSize];
char LOGIN_FIFO[BuffSize];
char MSG_FIFO[BuffSize];
char LOGOUT_FIFO[BuffSize];
char LOGFILES[BuffSize];

void init() {
    char *config = "server_config.ini";
    if (ini_gets("FIFO", "REG_FIFO", "", REG_FIFO, BuffSize, config) == 0 ||
        ini_gets("FIFO", "LOGIN_FIFO", "", LOGIN_FIFO, BuffSize, config) == 0 ||
        ini_gets("FIFO", "MSG_FIFO", "", MSG_FIFO, BuffSize, config) == 0 ||
        ini_gets("FIFO", "LOGOUT_FIFO", "", LOGOUT_FIFO, BuffSize, config) == 0 ||
        (MAX_ONLINE_USERS = ini_getl("SERVER", "MAX_ONLINE_USERS", 0, config)) == 0 ||
        (MAX_LOG_PERUSER = ini_getl("SERVER", "MAX_LOG_PERUSER", 0, config)) == 0 ||
        ini_gets("SERVER", "LOGFILES", "", LOGFILES, BuffSize, config) == 0) {
        fprintf(stderr, "Error: failed to read configuration file %s\n", config);
        exit(1);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档