st_blocks incorrect for files larger than 2Gbytes
Corinna Vinschen
vinschen@cygnus.com
Wed Jul 26 05:50:00 GMT 2000
Egor Duda wrote:
>
> Hi!
>
> newlib declares off_t as signed long and cygwin's stat calculates
> st_blocks as
>
> buf->st_blocks = (buf->st_size + S_BLKSIZE-1) / S_BLKSIZE;
>
> i.e. for file with size 2.164.854.784 bytes stat returns st_blocks=-2080187
> or big positive value, when assigned to (unsigned long). this may be
> fixed in a)newlib or b)cygwin or c)application
>
> which way is preferable?
SUSv2 defines an own type blkcnt_t for that purpose. This
might be the best way.
Corinna
--
Corinna Vinschen
Cygwin Developer
Cygnus Solutions, a Red Hat company
More information about the Newlib
mailing list