Criando programas com suporte a arquivos de configuração com a libConfuse

Tentarei demonstrar nesse tutorial como criar um programa que faz uso de um arquivo de configuração, e como não nos convém aqui tentarmos reinventar a roda, estarei utilizando para tal tarefa uma biblioteca muito útil chamada libConfuse.

[ Hits: 37.067 ]

Por: Andre Luiz da Silva em 02/06/2004


Introdução



Todo administrador de sistemas Unix em geral já se deparou com programas que quase toda sua configuração é feita por meio de um arquivo, afinal, somos muitas vezes adeptos fiéis do modo texto e não nos deixamos levar por interfaces bonitinhas que não nos oferecem todo o poder que um 'vi' da vida pode fazer usando apenas um arquivo texto puro, sejamos francos, muitas vezes essas ferramentas que tentam nos ajudar não cumprem o seu papel e acabam apenas nos atrapalhando...

Mas se você é um administrador de sistemas e nas horas vagas é um programador e adora ler arquivos 'TODO' para contribuir com algum projeto open source, agora chegou a sua vez, tentarei demonstrar nesse tutorial como criar um programa que faz uso de um arquivo de configuração e como não nos convém aqui tentarmos reinventar a roda, estarei utilizando para tal tarefa uma biblioteca muito útil chamada libConfuse.

LibConfuse is a configuration file parser library, licenciada sob os termos da LGPL e escrita em C. Ela suporta seções e (listas de) valores (strings, inteiros, floats, booleanos ou outras seções), assim como algumas outras características (tal como strings com aspas ou aspas duplas, expansão de variáveis de ambiente, funções e inclusão de declarações aninhadas). Ela faz isso muito fácil para adicionar a capacidade do uso de arquivos de configuração em um programa usando uma simples API.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Baixando e instalando
   3. Estrutura de dados
   4. Funções e macros
   5. Exemplo
   6. Considerações finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Criação e uso de um interpretador de script BrainFuck em C++

LivreNFE - O emissor Nfe open source para Linux

Brincando com o editor HT

Criando aplicativos para o Mac OS X no GNU/Linux

Utilizando a biblioteca NCURSES - Parte I

  
Comentários
[1] Comentário enviado por fabio em 02/06/2004 - 03:51h

Cara, que recurso "sinistro". Me amarrei no artigo, parabéns!
Bom, lá vai meu byte de contribuição: usuários de Debian e derivados podem instalar a libConfuse com o comando:

# apt-get install libconfuse-dev

[]'s

[2] Comentário enviado por dedraks em 02/06/2004 - 14:03h

Tem como linkar esta biblioteca estaticamente ao meu programa?
Para que o usuário não tenha que instalar a biblioteca em seu sistema.

[3] Comentário enviado por dedraks em 02/06/2004 - 14:27h

Já consegui fazer o que queria. :^)

[4] Comentário enviado por andrack em 18/06/2004 - 15:38h

Putz.... eu esqueci de citar no tutorial que por default a libConfuse eh compilada para ser usada estaticamente, caso vc queira usa-lá dinamicamente rode o script de configuração (configure) com a flag:
--enable-shared.


Beleza??

Falowz....

[5] Comentário enviado por carlosrfjunior em 28/04/2008 - 15:31h

Muito bom, esse seu turial andrack!

Para mim será muito útil! Só tenho uma dúvida que não estou conseguindo solucionar. Se eu quiser executar algum comando juntamente com o parametro do arquivo .Conf no console como posso fazer? Por exemplo:

#Seu Exemplo
#include <stdio.h>
#include <confuse.h>

int main(void)
{
char *IP= NULL;
cfg_t *cfg;
cfg_opt_t opts[] = {
CFG_SIMPLE_STR ("IP_TERMINAL", &IP),
CFG_END()
};
cfg = cfg_init (opts, 0);
cfg_parse (cfg, "exemplo.conf");

console("ping %s", IP); /* Qual o comando que eu posso usar*/

cfg_free(cfg);
return 0;
}

e como ficaria se eu tiver que passar algum parâmetro para o programa? Exemplo:

$ ./exemplo -h
ou
$ ./exemplo help

mostra o help personalizado

Obrigado

Carlos R F Júnior
Gestor de TI


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts