linux 程序读取配置文件,Linux下用C读取配置文件。类似ini这样。

Introduction

ccl is the customizable configuration

library, a collection of functions for application programmers wishing to

interface with user-editable configuration files containing key/value

pairs.

ccl is customizable because it allows the comment, key/value, and

string literal delimiters to be programatically specified at runtime.

ccl

is designed to be simple and portable; it has a small interface consisting of

five functions and is written in ANSI/ISO C. ccl uses avl‘s implemenation of

binary search trees for backend storage.

Downloadccl is available via ftp from

DocumentationYou can browse the library‘s contents by

using the navigation bar at the top of this page. A good starting point is the

globals page.

ExampleAn example is the best way to understand how ccl

works. A configuration file named example.conf might contain:

## Sample configuration file

Desktop-Picture = /usr/images/earth.jpg

Position = Centered

"Background Color" = Black

The following

code demonstrates how to parse and access this file using ccl:

69c5a8ac3fa60e0848d784a6dd461da6.png#include "ccl/ccl.h"

structccl_t config;const struct ccl_pair_t *iter;/*Set configuration file details*/config.comment_char= ‘#‘;

config.sep_char= ‘=‘;

config.str_char= ‘"‘;/*Parse the file*/ccl_parse(&config, "example.conf");/*Iterate through all key/value pairs*/

while((iter = ccl_iterate(&config)) != 0) {

printf("(%s,%s)n", iter->key, iter->value);

}/*Clean up*/ccl_release(&config);

69c5a8ac3fa60e0848d784a6dd461da6.png

When compiled, the snippet above produces the output

(Background Color,Black)

(Desktop-Picture,/usr/images/earth.jpg)

(Position,Centered)

原文:http://www.cnblogs.com/dieangel/p/3588294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini读写程序源码奉献给大家,纯c编写,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。 4、支持10、16、8进制数,0x开头为16进制数,0开头为8进制。 5、支持section、key或=号前后带空格。 6、支持\n、\r、\r\n或\n\r换行格式。 7、不区分section、key大小写,但写入时以新串为准,并保持其大小写。 8、新增数据时,若section存在则在该节最后一个有效数据后添加,否则在文件尾部添加。 9、支持指定key所在整行删除,即删除该键值,包括注释。 10、可自动跳过格式错误行,修改时仍然保留。 11、修改时保留原注释:包括整行注释、行尾注释(包括前面空格)。 12、修改时保留原空行。以上三点主要是尽量保留原格式。 不足之处: 1、不支持单key多value(逗号分割),只能一次性提取后自行处理。 2、不支持同名重复section和key。(重复section可视为错误,重复key则可能造成分歧) 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值