Reading a structured binary file?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Aug 3 14:25:23 PDT 2013
On Saturday, August 03, 2013 23:10:12 John Colvin wrote:
> On Saturday, 3 August 2013 at 18:23:58 UTC, Gary Willoughby wrote:
> > On Saturday, 3 August 2013 at 18:14:47 UTC, Gary Willoughby
> >
> > wrote:
> >> This sounds a great idea but once the file has been opened as
> >> a MmFile how to i convert this to a ubyte[] so the
> >> std.bitmanip functions work with it?
> >
> > I'm currently doing this:
> > auto file = new MmFile("file.dat");
> > ubyte[] buffer = cast(ubyte[])file[];
> > buffer.read!uint(); //etc.
> >
> > Is this how you would recommend?
>
> That defeats the object of memory mapping, as the [] at the end
> of cast(ubyte[])file[] implies copying the whole file in to
> memory.
Are you sure about that? Maybe I'm just not familiar enough with mmap, but I
don't see anything in MmFile which would result in it copying the whole file
into memory. I guess that I'll have to do some more reading up on mmap.
Certainly, if slicing it like that copies it all into memory, that's a big
problem.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list