On Monday 25 August 2003 20:21, Iulian Musat wrote: In cazul meu nu merita sa-mi bat capul cu asta. Fisierele mele nu o sa aiba niciodata mai mult de 5M.
> Doar o mica observatie: st_size este de tipul off_t. > YMHO ar trebui sa returnezi exact acelasi tip. > > De exemplu daca vrei sa accesezi fisiere mai mari de 2GB trebuie sa > definesti, inainte de a include headerele standard, _FILE_OFFSET_BITS=64 > si _LARGEFILE_SOURCE (ex. cu -D). In cazul asta sizeof(off_t) == 8, si o > sa pierzi din biti semnificativi daca atribui valoarea lui st_size unui > intreg. Acest lucru este valabil si pentru sisteme pe 32 biti si pe > sisteme pe 64 biti (unde un int este de obicei tot pe 32b). > > Inca o observatie, daca totusi vrei sa returnezi un int (sa zicem ca nu > ai support pentru fisiere mai mari de 2GB), forteaza un cast inainte de > return, ca sa te asiguri ca pe stiva se returneaza doar un int... > > Pentru mai multe informatii despre accesarea fisierelor mai mari de 2GB > pe sisteme de 32b vezi de ex. http://www.suse.de/~aj/linux_lfs.html. > > Numai bine, > -iulian > > Serghei Amelian wrote: > > On Monday 25 August 2003 13:12, Adrian Pirciu wrote: > >>fstat ? man fstat. > >> > >>>Exista alte metode de a determina marimea unui fisier in afara de > >>>lseek si fseek? > > > > Deja am rezolvat: > > > > int check_size(const char *path) > > { > > struct stat sb; > > if(-1 == stat(path, &sb)) > > { > > printf("%s\n", strerror(errno)); > > return -1; > > } > > return sb.st_size; > > } > > --- > Detalii despre listele noastre de mail: http://www.lug.ro/ -- Serghei. --- Detalii despre listele noastre de mail: http://www.lug.ro/
