]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs/did.c
arreglos minimos
[z.facultad/75.06/emufs.git] / emufs / did.c
1 #include "did.h"
2
3 int emufs_did_get_last(EMUFS *emu)
4 {
5         FILE * f_did;
6         int id, offset;
7         char name_f_did[255];
8         
9         strcpy(name_f_did, emu->nombre);
10         strcat(name_f_did, ".did");
11         
12         if ( (f_did = fopen(name_f_did,"r")) == NULL) return -1; /*ERROR*/
13         fseek(f_did, 0, SEEK_END);
14         
15         if (ftell(f_did) > 0){
16                 /* si el archivo no esta vacio es porque hay un nro disponible*/
17                 fseek(f_did, -sizeof(int),SEEK_END);
18                 /* leo el ultimo numero */
19                 fread(&id,sizeof(int),1,f_did);
20                 /* voy al final */
21                 fseek(f_did, 0, SEEK_END);
22                 /* mido el tamaƱo del archivo*/
23                 offset = ftell(f_did);
24                 fclose(f_did);
25                 /*lo trunco */
26                 truncate(name_f_did, offset - sizeof(int));
27         } else {
28                 fclose(f_did);
29                 /* si el archivo esta vacio */
30                 id = -1;
31         }
32         return id;
33 }