[Issue 3298] New: std.file.read on OSX: "Memory allocation failed"
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Sep 3 17:24:52 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3298
Summary: std.file.read on OSX: "Memory allocation failed"
Product: D
Version: 2.032
Platform: x86_64
OS/Version: Mac OS X
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: michel.fortin at michelf.com
In almost all cases, calling std.file.read a second time I throws a "Memory
Allocation Failed" error and the program exits. This simple program (that
prints itself) fails on my OS X machine at the second call to read.
import std.file : read;
import std.stdio : writeln;
int main(string[] args)
{
scope(success) writeln("Done");
scope(failure) writeln("Failure");
writeln(read(__FILE__)); // works
writeln(read(__FILE__)); // error
return 0;
}
Debugging a little, I find that "fstat64(fd, &statbuf)" returns an gigantic
file size (more than 1 Go), which then gets passed to GC.malloc. So it seems
that fstat64 doesn't work correctly on Mac OS X, or more likely the layout of
struct_stat64 may be different on Mac OS X and this has not been taken into
account in the declaration.
--
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