This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin-1.5.0-1: Problem stat-ing big file

Corinna Vinschen wrote:

On Thu, Jul 10, 2003 at 01:35:37PM +0200, Corinna Vinschen wrote:

On Thu, Jul 10, 2003 at 01:26:34PM +0200, Markus Sch?nhaber wrote:

While trying if the new support for files larger than 2GB works, I created a file with a size of 4.53 GB (4,869,120,000 Bytes) using a simple write in python. No problems here. But when stat-ing the file with python's os.stat or by calling stat from C as done in the little program below, the size of the file gets reported as 574,152,704 Bytes.

The changes to 64 bit file access are not propagated automatically to existing applications. E.g. the current `ls' from the fileutils package is compiled with the old (small) stat structure which only has 32 bit off_t for the file size. If you want to actually use the new struct stat and off_t with 64 bit, you have to recompile the application.

Sorry, but there's no way around that.

...and two more hints, just to clarify that a bit:

- You must compile using the header files and libcygwin.a which has been
  released together with the DLL to get the correct results.  Mixing
  old Cygwin headers with the new import lib or vice versa are sure
  candidates for segmentation fauls.

- Since off_t is now 64 bit and the st_size member of struct stat is a
  off_t, your printf isn't correct:

  printf("Size of file <%s>: %lld", argv[1], s.st_size);

%lld is necessary. %ld matches 32 bit types on Cygwin.

Thanks again for clearing that up.


Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]