digitalmars.D.bugs - [Issue 4060] New: Phobos + linux problems with files > 2GB
- d-bugmail puremagic.com (30/30) Apr 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4060
- d-bugmail puremagic.com (16/16) Apr 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4060
http://d.puremagic.com/issues/show_bug.cgi?id=4060
Summary: Phobos + linux problems with files > 2GB
Product: D
Version: 1.057
Platform: x86
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: Phobos
AssignedTo: nobody puremagic.com
ReportedBy: egonelbre gmail.com
Phobos is unable to seek/position positions that are > int.max
---
import std.stdio;
import std.string;
import std.stream;
int main(string[] args){
auto file = new BufferedFile(args[1]);
file.seek(cast(ulong)int.max + cast(ulong) atoi(args[2]), SeekPos.Set);
writefln("%d", file.position);
return 1;
}
---
Problem also happens with trying to use MMFile with files larger than int.max.
Probably related to bug 3409.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4060
Justin Spahr-Summers <Justin.SpahrSummers gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |Justin.SpahrSummers gmail.c
| |om
2010-04-05 03:06:44 CDT ---
This strikes me as a mistake in the Phobos declaration of seek(). The
underlying stdio fseek() function can only take longs as offsets, and Phobos'
seek() is defined the same way; however, a 'long' in C almost always
corresponds to an 'int' in D.
It's definitely a bug one way or the other, but to work around it you may want
to use offsets from SEEK_CUR instead of SEEK_SET.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 05 2010








d-bugmail puremagic.com