]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/tipo1_main.c
Soporte para bloques mas chicos que el registro.
[z.facultad/75.06/emufs.git] / emufs / tipo1_main.c
1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2  *----------------------------------------------------------------------------
3  *                                  emufs
4  *----------------------------------------------------------------------------
5  * This file is part of emufs.
6  *
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
10  * version.
11  *
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
15  * details.
16  *
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:  dom abr 11 03:06:48 ART 2004
22  * Autores: Leandro Lucarella <llucare@fi.uba.ar>
23  *----------------------------------------------------------------------------
24  *
25  * $Id$
26  *
27  */
28
29 /** \file
30  *
31  * Prueba de archivo \ref tipo3.h "tipo3".
32  * 
33  */
34
35 #include "emufs.h"
36
37 int main(int argc, char* argv[]) {
38         EMUFS* efs;
39         char reg1[] = "Hola mundo";
40         char reg2[] = "Adiós mundo cruel";
41         char reg3[] = "EMUFS la rompe!";
42         EMUFS_REG_ID id1;
43         EMUFS_REG_ID id2;
44         EMUFS_REG_ID id3;
45         EMUFS_REG_SIZE size;
46         char* reg;
47         int err = 0;
48
49         if (argc < 3) {
50                 printf("Faltan argumentos! %s [nombre] [tamaño de bloque]\n", argv[0]);
51                 return 1;
52         }
53
54         /* Crea emufs */
55         efs = emufs_crear(argv[1], T1, atoi(argv[2]), 0);
56         if (!efs) {
57                 printf("No se pudo crear el EMUFS.\n");
58                 return 1;
59         }
60
61         /* Graba registros */
62         id1 = efs->grabar_registro(efs, reg1, sizeof(reg1), &err);
63         if (err) {
64                 printf("No se pudo grabar el registro 1 (%d).\n", err);
65                 goto error;
66         }
67         printf("Se grabó el registro 1 (size: %u) con el id %lu.\n", sizeof(reg1), id1);
68
69         id2 = efs->grabar_registro(efs, reg2, sizeof(reg2), &err);
70         if (err) {
71                 printf("No se pudo grabar el registro 2 (%d).\n", err);
72                 goto error;
73         }
74         printf("Se grabó el registro 2 (size: %u) con el id %lu.\n", sizeof(reg2), id2);
75
76         id3 = efs->grabar_registro(efs, reg3, sizeof(reg3), &err);
77         if (err) {
78                 printf("No se pudo grabar el registro 3 (%d).\n", err);
79                 goto error;
80         }
81         printf("Se grabó el registro 3 (size: %u) con el id %lu.\n", sizeof(reg3), id3);
82
83         /* Lee registros */
84         reg = efs->leer_registro(efs, id1, &size, &err);
85         if (err) {
86                 printf("No se pudo leer el registro 1 (%d).\n", err);
87                 goto error;
88         }
89         printf("El contenido del registro 1 es: '%s'.\n", reg);
90         free(reg);
91
92         reg = efs->leer_registro(efs, id2, &size, &err);
93         if (err) {
94                 printf("No se pudo leer el registro 2 (%d).\n", err);
95                 goto error;
96         }
97         printf("El contenido del registro 2 es: '%s'.\n", reg);
98         free(reg);
99
100         reg = efs->leer_registro(efs, id3, &size, &err);
101         if (err) {
102                 printf("No se pudo leer el registro 3 (%d).\n", err);
103                 goto error;
104         }
105         printf("El contenido del registro 3 es: '%s'.\n", reg);
106         free(reg);
107
108         /* Ve archivos auxiliares */
109         printf("\nArchivos auxiliares:\n\n");
110         ver_archivo_FS(efs);
111
112         emufs_destruir(efs);
113         return 0;
114
115 error:
116         emufs_destruir(efs);
117         return 2;
118
119 }