Estoy siguiendo el Manual de Programación en Linux de Kurt Wall y en su capítulo 10 muestra como trabajar con la base de datos de Berkeley. El caso es que el código que pongo a continuación no compila bien. Los fallos de compilación del código adjunto están en db_open y DB->close aunque linke a
gcc abrir_db2.c -o abrir_db2 -lbd
abrir_db2.c: In function ‘main’:
abrir_db2.c:37:5: error: expected identifier or ‘(’ before ‘->’ token
Tampoco se cómo buscar por paginas mán de la Berkeley (si las tiene) sobre todo por averiguarr que versión tengo instalada y así intentar buscar algo de documentación para interaccionar desde C con ella. Al menos lo más básico, abrir, cerrar, añadir registros, etc.
Código
#include <stdlib.h> #include <stdio.h> #include <errno.h> #include <fcntl.h> #include <db.h> int main (void) { DB puntero_db; /* descriptor de base de datos */ int valor_retornado; valor_retornado = db_open("test.db", DB_BTREE, DB_CREATE, 0600, NULL, NULL, &puntero_db); if (valor_retornado) { } DB->close(puntero_db,0); return EXIT_SUCCESS; }
Respecto a la Berkeley DB encontré esta página:http://docs.oracle.com/cd/E17076_02/html/api_reference/C/frame_main.html pero tampoco funciona el código tomando estas funciones. Y esta otra https://bbs.archlinux.org/viewtopic.php?id=78032 pero tampoco consigo nada, ya digo creo que necesitaría saber que Berkeley tengo instalada.
Me da la sensación que el libro en general es demasiado antiguo porque en capítulos anteriores, por ejemplo en el que habla de archivos, toca el sistema ext-2 y Debian 7, ya monta ext-4. El caso es que me da que en los próximos capítulos a los que estoy deseando llegar donde toca la manipulación de pantalla con ncurses, redes y demás me pueda encontrar con los mismos problemas. Quisiera que me dieras vuestra opinión al respecto y, si existe algún manual más moderno me lo comentéis.
Un saludo.