st_blocks incorrect for files larger than 2Gbytes

Chris Faylor
Wed Jul 26 10:51:00 GMT 2000

On Wed, Jul 26, 2000 at 06:56:07PM +0400, Egor Duda wrote:
>Wednesday, 26 July, 2000 DJ Delorie wrote:
>>>   buf->st_blocks = (buf->st_size + S_BLKSIZE-1) / S_BLKSIZE;
>>> which way is preferable?
>DD>Casting  buf->st_size  to (unsigned long) before doing the math is.
>DD>off_t is signed, but negative sizes are meaningless.
>Wed Jul 26 14:32:38 2000  Egor Duda <>
>        * Make stat return correct st_blocks for files
>          with size bigger than 2Gb and less than 4Gb
>DD> However, this topic belongs on the newlib list, not the cygwin list.
>i  see.  making stat to support files bigger than 4 gigs (maximum file
>size    in    win32  is 2^64) requires to make changes in newlib. i've
>cc'ed  my previous message to newlib mailing list. but for now i think
>it's ok to patch cygwin.

It sounds like we'd have to change the stat structure to accomplish this
so I'm not sure that we want to do this right now.

I guess we could do what some versions of UNIX do and set up a 'statx'
field with larger fields and then define that to 'stat' so that all
new programs use statx and older functions still use the old stat.


More information about the Cygwin-patches mailing list