Awesome
Commons Library For C
Biblioteca con TADs útiles para el desarrollo de aplicaciones hechas con el lenguaje C
Provee los siguientes TADs:
- Logging (commons/log.h)
- Manipulación de Strings (commons/string.h)
- Manipulación de archivos de configuración (commons/config.h)
- Colecciones de elementos
- List (commons/collections/list.h)
- Dictionary (commons/collections/dictionary.h)
- Queue (commons/collections/queue.h)
- Manejo de array de bits (commons/bitarray.h)
- Manejo de fechas y timestamps (commons/temporal.h)
- Información de procesos (commons/process.h)
- Impresión de dumps de memoria (commons/memory.h)
- Impresión de errores (commons/error.h)
- Manejo simple de archivos de texto (commons/txt.h)
Notas
Algunas de las consideraciones a tener a la hora de su uso:
- Ninguna de las implementaciones utiliza semáforos, por lo que el uso concurrente debe ser implementado por el usuario de estas.
- Ninguna de las funciones implementadas posee validaciones para manejo de errores.
Guía de Instalación
Esta biblioteca utiliza CSpec para testear todas las funcionalidades, más información en: https://github.com/mumuki/cspec
Instrucciones de instalación:
-
Clonar el repositorio desde git (no usar el link de Download ZIP que provee GitHub).
-
make install
-> instala la biblioteca en el sistema -
make uninstall
-> desinstala la biblioteca
Guía para el uso
-
Linkear con
-lcommons
-
Para usarla en un .c/.h deberá incluirse de la siguiente forma:
commons/<Nombre_TAD>
Por ejemplo:
#include <commons/log.h>
#include <commons/collections/list.h>
Desde Eclipse
- Ir a las Properties del proyecto (en el Project Explorer - la columna de la izquierda - la opción aparece dándole click derecho al proyecto), y dentro de la categoría
C/C++ Build
entrar aSettings
, y ahí aTool Settings
. - Buscar
GCC Linker
>Libraries
>Libraries
. Notar que entre paréntesis dice-l
, el parámetro degcc
que estamos buscando. - Darle click en el botón de
+
, y poner el nombre de la biblioteca sin el-l
(en este caso,commons
). - Aceptar y buildear el proyecto.