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

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

Detectando assalto na multidão com visão computacional

Gerencie suas contas financeiras pessoais com Terminal Finances

Utilizando a biblioteca NCURSES - Parte III

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

Ponteiros void na linguagem C (parte 2)

  
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