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/
