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

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


Exemplo



Bom, agora que já temos "envergadura moral" suficiente para criarmos nosso primeiro exemplo, vejamos abaixo como ficaria um programa fazendo uso dessas funções demonstradas acima:

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

int main(void)
{
   int porta;
   char *servidor = NULL;
   cfg_t *cfg;
   cfg_opt_t opts[] = {
             CFG_SIMPLE_STR ("server", &servidor),
             CFG_SIMPLE_INT ("port", &porta),
             CFG_END()
             };
   cfg = cfg_init (opts, 0);
   cfg_parse (cfg, "exemplo.conf");
  
   printf ("\nServidor: %s \n", servidor);
   printf ("Porta: %d \n", porta);
   cfg_free(cfg);       /* Libera a memória alocada por cfg_init */
   return 0;
}

O nosso arquivo de configuração "exemplo.conf", deverá ter o seguinte conteúdo:

# Arquivo de configuração para teste.

server = "www.kernel.org"
port = 80

# Fim do arquivo de configuração.

Agora que já temos o arquivo de configuração, só nos resta compilarmos o programa:

$ gcc -o exemplo exemplo.c -lconfuse -Wall
$ ls
exemplo  exemplo.c  exemplo.conf 
$ ./exemplo
Servidor: www.kernel.org
Porta: 80
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

Como aprender a programar e produzir aplicativos usando Euphoria

Tutorial OpenGL

Conio.h para Linux

Apreendendo a utilizar o GNU Debugger (parte 2)

Ponteiros void na linguagem C

  
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