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/


Raspunde prin e-mail lui