文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么使用C语言Iniparser库实现ini文件读写

2023-07-05 14:13

关注

这篇“怎么使用C语言Iniparser库实现ini文件读写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用C语言Iniparser库实现ini文件读写”文章吧。

一、概述

iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库的API可以对ini文件(配置文件)进行解析、设置、删除等操作。

常见的 ini 读写开源库有:minIni、inifile、iniparser

二、使用

方式一

编译

下载后进入文件根目录,使用 make 命令编译,编译完成后会生成 libiniparser.a 和 libiniparser.so.1 文件

测试

iniparser 提供了测试程序,进入 example 目录,使用 make命令编译,完成后会生成 iniexample 执行文件

测试结果

怎么使用C语言Iniparser库实现ini文件读写

注意事项

使用链接文件时,可以参考 example 目录下的 Makefile 文件

方式二

此方法使用比较简单,直接将 src 目录下的文件拷贝到工程中即可,使用方式和自己编写的 .c 和 .h 文件一样

三、API函数

iniparser.h

int iniparser_getnsec(dictionary *d); char * iniparser_getsecname(dictionary *d, int  n); void iniparser_dump_ini(dictionary * d, FILE * f);   void iniparser_dumpsection_ini(dictionary * d, char * s, FILE * f);  void iniparser_dump(dictionary * d, FILE * f);   int iniparser_getsecnkeys(dictionary * d, char * s);  char ** iniparser_getseckeys(dictionary * d, char * s);  char * iniparser_getstring(dictionary * d, const char * key, char * def);    int iniparser_getint(dictionary * d, const char * key, int notfound);  double iniparser_getdouble(dictionary * d, const char * key, double notfound);   int iniparser_getboolean(dictionary * d, const char * key, int notfound);  int iniparser_set(dictionary * ini, const char * entry, const char * val);  void iniparser_unset(dictionary * ini, const char * entry);  int iniparser_find_entry(dictionary * ini, const char * entry) ;  dictionary * iniparser_load(const char * ininame);  void iniparser_freedict(dictionary * d);

dictionary.h

dictionary * dictionary_new(int size);   void dictionary_del(dictionary * vd);  char * dictionary_get(dictionary * d, const char * key, char * def);  int dictionary_set(dictionary * vd, const char * key, const char * val);  void dictionary_unset(dictionary * d, const char * key);  void dictionary_dump(dictionary * d, FILE * out);

四、演示

test.ini 文件

#
# 测试文件
#
 
[Node]
Test                           = 1234

test.c

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h> #include "iniparser.h"  #define FILE_INI "test.ini" int get_ini_info(int *read_buf){    dictionary  *ini;     ini = iniparser_load(FILE_INI);    if (ini==NULL) {        fprintf(stderr, "cannot parse file: %s\n", FILE_INI);        return -1;    }         // iniparser_dump(ini, stderr);         *read_buf = iniparser_getint(ini, "node:test", -1);     iniparser_freedict(ini);    return 0;} int set_ini_info(const char *write_buf){    dictionary  *ini;    FILE *fp = NULL;     ini = iniparser_load(FILE_INI);    if (ini==NULL) {        fprintf(stderr, "cannot parse file: %s\n", FILE_INI);        return -1;    }         iniparser_set(ini, "node:test", write_buf);         fp = fopen(FILE_INI, "w");    if( fp == NULL ) {        fprintf(stderr, "stone:fopen error!\n");        return -1;    }    iniparser_dump_ini(ini, fp);     fclose(fp);    iniparser_freedict(ini);    return 0;} int main (int argc, char **argv){    int num = 0;    set_ini_info("1234");    get_ini_info(&num);    printf("date is: %d \n", num);}

文件目录

怎么使用C语言Iniparser库实现ini文件读写

编译

gcc test.c dictionary.c iniparser.c -o test

测试效果

怎么使用C语言Iniparser库实现ini文件读写

以上就是关于“怎么使用C语言Iniparser库实现ini文件读写”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯