[Issue 3409] New: stdio.File.seek() doesn't work for files >2GB

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Oct 16 23:01:41 PDT 2009


http://d.puremagic.com/issues/show_bug.cgi?id=3409

           Summary: stdio.File.seek() doesn't work for files >2GB
           Product: D
           Version: 2.035
          Platform: Other
        OS/Version: Windows
            Status: NEW
          Keywords: patch
          Severity: major
          Priority: P2
         Component: Phobos
        AssignedTo: nobody at puremagic.com
        ReportedBy: dsimcha at yahoo.com


--- Comment #0 from David Simcha <dsimcha at yahoo.com> 2009-10-16 23:01:40 PDT ---
stdio.File.seek() doesn't work for large files.  This is because fseek() is
using an int to represent the offset because it's crufty old C code from the
Stone Age.  Instead, it throws a ConvOverflowError exception on trying to seek
a long distance (> int.max).  The proper fix would be to use the C function
that takes a long instead, but this is apparently not available on all
platforms and not part of the C standard.  

I've attached a file with an implementation of a kludge to work around this
issue by seeking incrementally.  It's ugly but it works.  It's implemented in
terms of the current seek() implementation, and I haven't integrated it into
the File struct, but the basic code is there.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list