Archive for the ‘c’ Category

Programación de Sistemas

Tuesday, February 9th, 2010

#Hi, Hola
——————————————————————————————————————————————————————————————-

Today upload a new PDF file. I am in roads in the piratery (only books) for every all. I could not read all everything. The next book is for programmers. Explain how it works GNU/ Linux operating system and how to program for it.

The download is not aviable now

——————————————————————————————————————————————————————————————-
Hoy subiré un nuevo PDF. Estoy incursionando en la piratería (solo de libros) para todos. No he podido leer todos, EL siguiente libro es para programadores. Explica como funciona GNU/ Linux y como programar para éste.

La descargar no está disponible ahora

echo $SALUDOS;

Usando libconfig

Friday, January 22nd, 2010

#Hola a todos,

Hoy voy a comentarles acerca de una librería hecha en C y C++ para el tratamiento de archivos de configuración, tal como sería un archivo XML o properties.

A primera vista les puede parecer un tanto complicada la forma de crear sus archivos de configuración, pero en la programación es bastante cómoda y se torna fácil :P .

Un fragmento de lo que puede ser un archivo de configuración válido.

// An example configuration file that stores information about a store.

// Basic store information:
name = “Books, Movies & More”;

// Store inventory:
inventory =
{
books = ( { title  = “Treasure Island”;
author = “Robert Louis Stevenson”;
price  = 29.99;
qty    = 5; },
{ title  = “Snow Crash”;
author = “Neal Stephenson”;
price  = 9.99;
qty    = 8; }
);

O puede ser, como ya comenté, tipo properties, por ejemplo:

###########################################################
# Rodrigo Ramos Godínez                                                                                        #
# Archivo de configuración de ejemplo                                                                 #
# mail: crackduoro@gmail.com                                                                              #
###########################################################

version = “1.0″;

nombre = “Rodrigo”;
nick = “lyonn”;
apellido = “Ramos”;
edad = 21;

Es un ejemplo bastante sencillo el archivo de configuración, pero al final si buscan la forma de llave-valor les podrá resultar muy útil.

En programación podemos verificar que el archivo esté bien formado =P y eso es bastante bueno ya que nos evitará muchos dolores de cabeza posteriores.

Un ejemplito para dejar más claro como se obtendría primero que sea válido el archivo de configuración, después obtenemos dos llaves y las mandamos por pantalla.

#include <stdlib.h>
#include <stdio.h>
#include <libconfig.h>

int main(int argc, char *argv[]) {

config_t config;
config_setting_t *setting;
const char *str;

config_init(&config);
//Verificamos que el archivo de configuración se encuentre y que esté bien formado
if (!config_read_file(&config, “config_files/config.cfg”))
{
fprintf(stderr,”%s, %d -%s\n”, config_error_file(&config), config_error_line(&config), config_error_text(&config));
config_destroy(&config);
return (EXIT_FAILURE);
}
//Obtenemos el valor de la llave
if (config_lookup_string(&config, “nombre”, &str))
printf(“%s \n”, str);
else
fprintf(stderr, “No hay un nombre disponible”);
//Otro valor de una llave
if (config_lookup_string(&config, “apellido”, &str))
printf(“%s \n”, str);
else
fprintf(stderr, “No hay apellido disponible”);

return (EXIT_SUCCESS);
}

Bien, ahora solo falta compilar…Hay de dos formas posibles, la primera es que la librería config esté en /usr/lib o especificar el path completo, ambos como flags (-l, -I,) a gcc.

Ejemplo 1:

gcc $SOURCE -o $OUTPUT  -lconfig

Ejemplo 2:

gcc $SOURCE -o $OUTPUT  -I./usr/local/lib/libconfig.so.9

Y pues a ya está, a usarlo como mejor vaya con sus necesidades.

Para descargar, ver más documentación de la lib (API), etc pueden consultar la siguiente liga

Espero que les sirva en algún momento de la vida esta información, muy reducida, pero está….

echo $SALUDOS;