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.863 ]

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


Estrutura de dados



A libConfuse faz uso de algumas estruturas de dados, são elas:
  • cfg_defvalue_t
  • cfg_opt_t
  • cfg_t
  • cfg_value_t

Nesse tutorial, que serve de introdução a essa biblioteca, estarei dando atenção ao uso da estrutura cfg_opt_t.

A estrutura cfg_opt_t é a responsável por armazenar informações sobre as opções que usaremos para compor o nosso querido arquivo de configuração, para isso ela faz uso de alguns macros, tais como:
  • CFG_SIMPLE_INT(name, svalue)
  • CFG_SIMPLE_FLOAT(name, svalue)
  • CFG_SIMPLE_STR(name, svalue)
  • entre outras...

O uso da estrutura cfg_opt_t é simples, nada melhor do que um exemplo, vejamos:

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

int main(void)
{
   int porta;
   char *servidor = NULL;       /* Aqui inicializamos o ponteiro como NULL para
                * evitarmos mensagens desagradáveis ;-)

                */
   cfg_opt_t opts[] = {
             CFG_SIMPLE_STR ("serverr", &servidor),
             CFG_SIMPLE_INT ("port", &porta),
             CFG_END()         /* O macro CFG_END serve para indicarmos que
            };             * não usaremos mais opções.

                         */
  
    .....
}
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

Introdução à plataforma GNU de desenvolvimento

Programando com uma granada de mão: uma visão da linguagem C

Reprodução de arquivos WAV com SDL_mixer e linguagem C

Programando em Qt

  
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