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

2023-12-30 21:04:38

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

首先到GitHub官网minIni/dev at master · compuphase/minIni · GitHub上把这三个文件下载下来放到项目目录下

然后包含该头文件使用:

#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配置文件长这样

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

完整代码?

#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);
    }
}

文章来源:https://blog.csdn.net/weixin_62264287/article/details/135308538
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。