X-Git-Url: https://git.llucax.com/z.facultad/75.06/jacu.git/blobdiff_plain/bd0062922151710408edae80d0f67db20114c6c9..HEAD:/src/vfile/vfile.c?ds=inline diff --git a/src/vfile/vfile.c b/src/vfile/vfile.c index 469ef76..7136eed 100644 --- a/src/vfile/vfile.c +++ b/src/vfile/vfile.c @@ -159,25 +159,31 @@ size_t vfwrite(const void *ptr, size_t size, size_t nmemb, VFILE* vfp) int vfvol_close(VFILE* vfp) { - /* Si es de escritura y el último guardo la cabecera. */ - if (vfp->mode == VFWRITE && vfp->lastvol) + int ret = 0; + if (vfp->fp) { - int ret; - PERR("vfvol_close: modo == VFWRITE"); - /* Me posiciono al principio del archivo. */ - if ((ret = fseek(vfp->fp, 0l, SEEK_SET))) + /* Si es de escritura y el último guardo la cabecera. */ + if (vfp->mode == VFWRITE && vfp->lastvol) { - PERR("vfvol_close: fseek error"); - return ret; /* fseek error. */ - } - /* Guardo cabecera para indicar si es el último volumen o no. */ - if ((ret = fputc(vfp->lastvol, vfp->fp)) == EOF) - { - PERR("vfvol_close: fputc error"); - return ret; /* fputc error. */ + int ret; + PERR("vfvol_close: modo == VFWRITE"); + /* Me posiciono al principio del archivo. */ + if ((ret = fseek(vfp->fp, 0l, SEEK_SET))) + { + PERR("vfvol_close: fseek error"); + return ret; /* fseek error. */ + } + /* Guardo cabecera para indicar si es el último volumen o no. */ + if ((ret = fputc(vfp->lastvol, vfp->fp)) == EOF) + { + PERR("vfvol_close: fputc error"); + return ret; /* fputc error. */ + } } + ret = fclose(vfp->fp); + vfp->fp = 0; } - return fclose(vfp->fp); + return ret; } int vfvol_open_next(VFILE* vfp)