首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C 語言 INI 配置文件解析庫 iniparser 完整使用指南

     編輯:關於C

庫特點

  • 輕量、純 C、無依賴;
  • 支持 Section、Key-Value、註釋;
  • 提供字典式 API:查找、獲取 int/double/bool/string、設置、刪除、導出。

INI 文件格式

[tcp]
port = 8000
ip = 127.0.0.1
family = AF_INET

[serial port]
speed = 9600

核心 API

函數用途
dictionary* iniparser_load(filename)解析文件,返回字典
void iniparser_freedict(dict)釋放字典
int iniparser_getint(dict, "sec:key", default)獲取整數
char* iniparser_getstring(dict, "sec:key", default)獲取字符串
double iniparser_getdouble(...)獲取浮點數
int iniparser_getboolean(...)獲取布爾值
int iniparser_set(dict, "sec:key", value)設置值
void iniparser_unset(dict, "sec:key")刪除鍵
void iniparser_dump(dict, FILE*)導出文本

編譯與鏈接

tar -zxvf iniparser-3.1.tar.gz
cd iniparser-3.1 && make
# 生成 libiniparser.a / .so
cp src/iniparser.h src/dictionary.h /usr/local/include/
cp libiniparser.a /usr/local/lib/

示例程序

#include <stdio.h>
#include <stdlib.h>
#include "iniparser.h"

int main() {
    dictionary *ini = iniparser_load("config.ini");
    if (!ini) { fprintf(stderr, "load fail\n"); return 1; }

    int port = iniparser_getint(ini, "tcp:port", -1);
    char *ip = iniparser_getstring(ini, "tcp:ip", NULL);
    int speed = iniparser_getint(ini, "serial port:speed", -1);

    printf("TCP %s:%d\n", ip, port);
    printf("Serial speed: %d\n", speed);

    iniparser_freedict(ini);
    return 0;
}

編譯運行

gcc demo.c -o demo -liniparser
./demo

優勢總結

讓 C 專案擁有類似高級語言的配置文件管理能力,避免硬編碼參數,極大提升可維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved