Pular para o conteúdo

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.
Andre Luiz da Silva andrack
Hits: 43.640 Categoria: C/C++ Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

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.

   1. Introdução
   2. Baixando e instalando
   3. Estrutura de dados
   4. Funções e macros
   5. Exemplo
   6. Considerações finais
Nenhum artigo encontrado.

C - Include e Makefile

Tutorial OpenGL v2.0

Escrevendo o caos em C

LivreNFE - O emissor Nfe open source para Linux

Tutorial OpenGL

#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

Entre na sua conta para comentar.