1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2 *----------------------------------------------------------------------------
4 *----------------------------------------------------------------------------
5 * This file is part of emufs.
7 * emufs is free software; you can redistribute it and/or modify it under the
8 * terms of the GNU General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option) any later
12 * emufs is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 * You should have received a copy of the GNU General Public License along
18 * with emufs; if not, write to the Free Software Foundation, Inc., 59 Temple
19 * Place, Suite 330, Boston, MA 02111-1307 USA
20 *----------------------------------------------------------------------------
21 * Creado: Fri Apr 09 18:24:00 ART 2004
22 * Autores: Alan Kennedy <kennedya@3dgames.com.ar>
23 *----------------------------------------------------------------------------
27 /****************************/
28 /* Prueba de archivo TIPO 2 */
29 /****************************/
36 int main(int argc, char *argv[])
39 EMUFS_REG_ID n0, n1, n2, n3, n4, n5, n6, n7, n8;
40 EMUFS_REG_SIZE reg_size;
52 EMUFS_Estadisticas stats;
54 strcpy(a, "1234567890");
55 strcpy(b, "REGISTRO NUMERO 2. ESTE REGISTRO ES MUCHO MAS LARGO QUE EL UNO");
56 strcpy(c, "ABCDEFGHIJKL");
58 strcpy(e, "HOLA soy un registro nuevo, me llamo E");
59 strcpy(f, "yo soy F");
60 strcpy(g, "me llamo G y quiero estar en el bloque 1");
61 strcpy(h, "un registro nuevo que se llama H, acompania a G en el bloque 1");
62 strcpy(i, "me argrego despues de borrar a un registro");
64 /* Creamos el archivo Tipo 2. Pasamos blocksize = 0 y Regsize = 0 pues estar */
66 efs = emufs_crear("articulos", T2, 0, 0);
68 /* Grabamos un par de registros */
69 n0 = efs->grabar_registro(efs, a, 11, &err);
70 n1 = efs->grabar_registro(efs, b, 63, &err);
71 n2 = efs->grabar_registro(efs, c, 13, &err);
72 n3 = efs->grabar_registro(efs, d, 8, &err);
73 n4 = efs->grabar_registro(efs, e, 39, &err);
74 n5 = efs->grabar_registro(efs, f, 9, &err);
75 n6 = efs->grabar_registro(efs, g, 41, &err);
76 n7 = efs->grabar_registro(efs, h, 63, &err);
78 /* Borramos un registro del medio */
79 printf("tipo2_main.c >> Borrando registro: %lu\n",n5);
80 efs->borrar_registro(efs, n5);
81 printf("tipo2_main.c >> Borrando registro: %lu\n",n1);
82 efs->borrar_registro(efs, n1);
83 printf("tipo2_main.c >> Borrando registro: %lu\n",n0);
84 efs->borrar_registro(efs, n0);
85 printf("tipo2_main.c >> Borrando registro: %lu\n",n3);
86 efs->borrar_registro(efs, n3);
87 printf("tipo2_main.c >> Borrando registro: %lu\n",n7);
88 efs->borrar_registro(efs, n7);
89 printf("tipo2_main.c >> Borrando registro: %lu\n",n4);
90 efs->borrar_registro(efs, n4);
92 n8 = efs->grabar_registro(efs, d, 8, &err);
93 printf("tipo2_main.c >> Id recuperado: %lu\n",n8);
95 /* Levanto un registro */
96 registro = efs->leer_registro(efs,n2,®_size,&err);
98 printf("tipo2_main.c >>Registro: %lu Size: %lu Content: %s\n\n",n2,reg_size,registro);
102 stats = efs->leer_estadisticas(efs);
103 printf("Size del Archivo de datos: %lu\n",stats.tam_archivo_bytes);
104 printf("Cantidad de Registros en el Archivo de datos: %lu\n",stats.tam_archivo);
105 printf("Total de espacio libre en el .dat: %lu\n",stats.total_fs);
106 printf("Minimo espacio libre en bloque o gap: %lu\n",stats.min_fs);
107 printf("Maximo espacio libre en bloque o gap: %lu\n",stats.max_fs);
108 printf("Media de espacio libre en bloque o gap: %lu\n",stats.media_fs);
109 printf("Cantidad en bytes de informacion de control: %lu\n",stats.info_control);