]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/tipo1_main.c
Se hace un test funcional (y un par de bugfixes).
[z.facultad/75.06/emufs.git] / emufs / tipo1_main.c
1 #include "emufs.h"
2
3 int main(int argc, char* argv[]) {
4         EMUFS* efs;
5         char reg1[] = "Hola mundo";
6         char reg2[] = "Adiós mundo cruel";
7         char reg3[] = "EMUFS la rompe!";
8         EMUFS_REG_ID id1;
9         EMUFS_REG_ID id2;
10         EMUFS_REG_ID id3;
11         EMUFS_REG_SIZE size;
12         char* reg;
13         int err = 0;
14
15         if (argc < 3) {
16                 printf("Faltan argumentos! %s [nombre] [tamaño de bloque]\n", argv[0]);
17                 return 1;
18         }
19
20         /* Crea emufs */
21         efs = emufs_crear(argv[1], T1, atoi(argv[2]), 0);
22         if (!efs) {
23                 printf("No se pudo crear el EMUFS.\n");
24                 return 1;
25         }
26
27         /* Graba registros */
28         id1 = efs->grabar_registro(efs, reg1, sizeof(reg1), &err);
29         if (err) {
30                 printf("No se pudo grabar el registro 1 (%d).\n", err);
31                 goto error;
32         }
33         printf("Se grabó el registro 1 (size: %u) con el id %lu.\n", sizeof(reg1), id1);
34
35         id2 = efs->grabar_registro(efs, reg2, sizeof(reg2), &err);
36         if (err) {
37                 printf("No se pudo grabar el registro 2 (%d).\n", err);
38                 goto error;
39         }
40         printf("Se grabó el registro 2 (size: %u) con el id %lu.\n", sizeof(reg2), id2);
41
42         id3 = efs->grabar_registro(efs, reg3, sizeof(reg3), &err);
43         if (err) {
44                 printf("No se pudo grabar el registro 3 (%d).\n", err);
45                 goto error;
46         }
47         printf("Se grabó el registro 3 (size: %u) con el id %lu.\n", sizeof(reg3), id3);
48
49         /* Lee registros */
50         reg = efs->leer_registro(efs, id1, &size, &err);
51         if (err) {
52                 printf("No se pudo leer el registro 1 (%d).\n", err);
53                 goto error;
54         }
55         printf("El contenido del registro 1 es: '%s'.\n", reg);
56         free(reg);
57
58         reg = efs->leer_registro(efs, id2, &size, &err);
59         if (err) {
60                 printf("No se pudo leer el registro 2 (%d).\n", err);
61                 goto error;
62         }
63         printf("El contenido del registro 2 es: '%s'.\n", reg);
64         free(reg);
65
66         reg = efs->leer_registro(efs, id3, &size, &err);
67         if (err) {
68                 printf("No se pudo leer el registro 3 (%d).\n", err);
69                 goto error;
70         }
71         printf("El contenido del registro 3 es: '%s'.\n", reg);
72         free(reg);
73
74         emufs_destruir(efs);
75         return 0;
76
77 error:
78         emufs_destruir(efs);
79         return 2;
80
81 }