X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/28ec60bde7175661afed582949f32390ebafaeaa..51ed490d1caf11b5645abef4dd473e5a5b520856:/emufs/did.c?ds=inline diff --git a/emufs/did.c b/emufs/did.c index 663feef..6e13fd5 100644 --- a/emufs/did.c +++ b/emufs/did.c @@ -37,8 +37,9 @@ */ #include "did.h" +#include "error.h" +#include "common.h" #include -#include #include int emufs_did_crear(EMUFS* efs) @@ -59,13 +60,13 @@ EMUFS_REG_ID emufs_did_get_last(EMUFS *efs, int* err) if ((f_did = fopen(name_f_did, "rb")) == NULL) { PERR("No se puede abrir archivo"); - *err = 4; /* EMUFS_ERROR_CANT_OPEN_FILE */ + *err = EMUFS_ERROR_CANT_OPEN_FILE; return EMUFS_NOT_FOUND; } if (fseek(f_did, 0l, SEEK_END)) { PERR("No se pudo hacer fseek()"); fclose(f_did); - *err = 8; /* EMUFS_ERROR_SEEK_FILE */ + *err = EMUFS_ERROR_SEEK_FILE; return EMUFS_NOT_FOUND; } @@ -74,35 +75,35 @@ EMUFS_REG_ID emufs_did_get_last(EMUFS *efs, int* err) if (fseek(f_did, -sizeof(EMUFS_REG_ID), SEEK_END)) { PERR("No se pudo hacer fseek()"); fclose(f_did); - *err = 8; /* EMUFS_ERROR_SEEK_FILE */ + *err = EMUFS_ERROR_SEEK_FILE; return EMUFS_NOT_FOUND; } /* leo el ultimo numero */ if (fread(&n_regid, sizeof(EMUFS_REG_ID), 1, f_did) != 1) { fclose(f_did); PERR("Error al leer did"); - *err = 3; /* EMUFS_ERROR_FILE_READ */ + *err = EMUFS_ERROR_FILE_READ; return EMUFS_NOT_FOUND; } /* voy al final */ if (fseek(f_did, 0l, SEEK_END)) { PERR("No se pudo hacer fseek()"); fclose(f_did); - *err = 8; /* EMUFS_ERROR_SEEK_FILE */ + *err = EMUFS_ERROR_SEEK_FILE; return EMUFS_NOT_FOUND; } /* mido el tamaƱo del archivo */ if ((n_offset = ftell(f_did)) == -1) { PERR("No se pudo hacer ftell()"); fclose(f_did); - *err = 9; /* EMUFS_ERROR_TELL_FILE */ + *err = EMUFS_ERROR_TELL_FILE; return EMUFS_NOT_FOUND; } fclose(f_did); /* lo trunco */ if (truncate(name_f_did, n_offset - sizeof(EMUFS_REG_ID))) { PERR("No se pudo truncar el archivo did"); - *err = 10; /* EMUFS_ERROR_TRUNCATE_FILE */ + *err = EMUFS_ERROR_TRUNCATE_FILE; return EMUFS_NOT_FOUND; } } else if (!pos) { @@ -112,7 +113,7 @@ EMUFS_REG_ID emufs_did_get_last(EMUFS *efs, int* err) } else { PERR("No se pudo hacer ftell()"); fclose(f_did); - *err = 9; /* EMUFS_ERROR_TELL_FILE */ + *err = EMUFS_ERROR_TELL_FILE; return EMUFS_NOT_FOUND; } return n_regid; @@ -124,7 +125,7 @@ int emufs_did_agregar(EMUFS *efs, EMUFS_REG_ID n_regid) char name_f_did[255]; strcpy(name_f_did, efs->nombre); - strcat(name_f_did, EMUFS_DID_EXT); + strcat(name_f_did, EMUFS_DID_EXT); if ( (f_did = fopen(name_f_did,"a+")) == NULL) return -1; fwrite(&n_regid, sizeof(EMUFS_REG_ID), 1, f_did); @@ -133,3 +134,11 @@ int emufs_did_agregar(EMUFS *efs, EMUFS_REG_ID n_regid) return 0; } +long emufs_did_get_file_size(EMUFS* efs, int* err) +{ + char name[255]; + strcpy(name, efs->nombre); + strcat(name, EMUFS_DID_EXT); + return emufs_common_get_file_size(name, err); +} +