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: 40.864 ]

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


Funções e macros



As macros CFG_SIMPLE_STR e CFG_SIMPLE_INT indicam que o valor da opção servidor contida no nosso arquivo de configuração deverá ser armazenada na variável servidor e que o valor da opção port deverá ser armazena na variável porta.

Depois que já criamos as nossas opções, devemos antes de mais nada alocar memória para armazenar os nossos valores, que serão lidos do nosso arquivo de configuração. A função responsável por isso é:

cfg_t *cfg_init (cfg_opt_t * opts, cfg_flag_t flags);

Onde opts receberá o valor da estrutura que acabamos de criar e flags receberá o valor 0 (zero). Como valor de retorno, a função cfg_init retornará uma variável do tipo 'cfg_t' que deverá ser previamente declarada.

Agora chegou a hora de usarmos a função cfg_parser. Ela é a responsável por ler os valores do arquivo de configuração e armazenar na região de memória alocada por cfg_init. Vejamos o protótipo dessa função:

cfg_parser (cfg_t *cfg, const char *filename)

Página anterior     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

Utilizando a biblioteca NCURSES - Parte III

Aleatoriedade em C

Ponteiros void na linguagem C

Substituindo a biblioteca conio.h no Linux usando ncurses curses.h

C - Include e Makefile

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts